Đây là một bài tập Python đơn giản và mã đã hoạt động nhưng tôi đã tự hỏi, nếu phần còn lại 10 % 10 bằng không, làm thế nào tôi có thể chia một số nhất định cho 0 và nhận được thứ gì đó ngoài lỗi? Nó có lẽ là tầm thường nhưng tôi không thể nhận ra những gì đang xảy ra.
number = int(input()) a = number // 100 b = number // 10 % 10 c = number % 10 print(a + b + c)Hỏi ngày 20 tháng 12 năm 2020 lúc 0:56Dec 20, 2020 at 0:56
0
Chà, bạn không thực sự chia cho Zero ở bất cứ đâu trong ví dụ đó. Nếu bạn đang đề cập đến dòng b = number // 10 % 10, thì điều thực sự xảy ra là số đó được chia cho 10 và kết quả của điều đó được đưa vào modulo, có nghĩa là "còn lại sau khi chia cho 10". Tôi nghĩ rằng bạn đã hiểu thứ tự hoạt động sai trên dòng đó, điều này khiến bạn tin rằng sự phân chia bằng 0 có thể xảy ra. Nó không thể.
Đã trả lời ngày 20 tháng 12 năm 2020 lúc 1:06Dec 20, 2020 at 1:06
Điều quan trọng là sử dụng dấu ngoặc đơn khi làm việc với các nhà khai thác hỗn hợp vì sự ưu tiên của nhà điều hành có thể dẫn đến kết quả ngoài ý muốn. Trong Python, % và // có cùng mức độ để biểu thức được đánh giá từ trái sang phải. Tham khảo 6.17 trong tài liệu Python để biết thêm thông tin chi tiết về ưu tiên cụ thể của ngôn ngữ.
Trong mã trên của bạn, vì nó được đánh giá từ trái sang phải, sự phân chia sàn sẽ luôn xảy ra trước khi hoạt động modulo để không có ZerodivSionerror có thể xảy ra. Nhưng để trả lời câu hỏi của bạn, bạn luôn có thể sử dụng thử và bắt khối để bắt ZerodivisionError và tự mình xử lý.try and catch block to catch the ZeroDivisionError and handle it on your own.
number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input())
Wovano
3.3095 Huy hiệu vàng20 Huy hiệu bạc43 Huy hiệu đồng5 gold badges20 silver badges43 bronze badges
Đã trả lời ngày 20 tháng 12 năm 2020 lúc 1:32Dec 20, 2020 at 1:32
1
Lặp lại hai bước tiếp theo cho đến khi số không phải là 0
Nhận chữ số ngoài cùng bên phải của số với sự trợ giúp của toán tử ’%của phần còn lại bằng cách chia nó với 10 và thêm nó vào tổng.
Chia số cho 10 với sự trợ giúp của toán tử //
Lặp lại hai bước tiếp theo cho đến khi số không phải là 0
Nhận chữ số ngoài cùng bên phải của số với sự trợ giúp của toán tử ’%của phần còn lại bằng cách chia nó với 10 và thêm nó vào tổng.
Chia số cho 10 với sự trợ giúp của toán tử //
In hoặc trả lại tổng
Examples:
Đầu vào: n = 87 & nbsp; đầu ra: 15 & nbsp; đầu vào: n = 111 & nbsp; đầu ra: 3
Output : 15
Input : n = 111
Output : 3
& nbsp; bên dưới là các phương thức để tổng của các chữ số. & nbsp; Phương thức-1: sử dụng các phương thức str () và int () .: Phương thức str () được sử dụng để chuyển đổi số thành chuỗi. Phương thức int () được sử dụng để chuyển đổi chữ số chuỗi thành số nguyên. & Nbsp;
Below are the methods to sum of the digits.
Method-1: Using str() and int() methods.: The str() method is used to convert the number to string. The int() method is used to convert the string digit to an integer.
Chuyển đổi số thành chuỗi và lặp qua từng chữ số trong chuỗi và sau khi chuyển đổi từng chữ số thành số nguyên và thêm vào tổng của các chữ số trong mỗi lần lặp. & Nbsp;
Python3
def getSum(n):
number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 0____11 number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 2 number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 3
____10number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 5 number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 6number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 7 number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 8number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 9
150number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 1 1522number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 2 154155
number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 0157 number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 1
159number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 2 151
152153
Output:
15Phương thức-2: Sử dụng phương thức SUM () .: Phương thức SUM () được sử dụng để tổng số trong danh sách.The sum() method is used to sum of numbers in the list.
Chuyển đổi số thành chuỗi bằng str () và dải chuỗi và chuyển đổi thành danh sách số bằng phương thức dải () và map () resp. Sau đó tìm tổng bằng phương thức Sum ().
Python3
def getSum(n):
____10157number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 2 number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 8150
number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 0152number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 2 154155156155154159
number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 0____27 number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 1153
159number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 2 151
152153
Output:
15Phương pháp-3: Sử dụng cách tiếp cận chung: & nbsp;
- Nhận số
- Khai báo một biến để lưu trữ tổng và đặt thành 0
- Lặp lại hai bước tiếp theo cho đến khi số không phải là 0
- Nhận chữ số ngoài cùng bên phải của số với sự trợ giúp của toán tử ’%của phần còn lại bằng cách chia nó với 10 và thêm nó vào tổng.
- Chia số cho 10 với sự trợ giúp của toán tử //
- In hoặc trả lại tổng
A. Cách tiếp cận lặp:
Python3
def getSum(n):
number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 0____11 number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 2 number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 3
____1010 % 106 10 % 107number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 2 number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 3b = number // 10 % 100
b = number // 10 % 101number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 1 number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 2 number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 1 152 b = number // 10 % 106b = number // 10 % 107 b = number // 10 % 108b = number // 10 % 109
b = number // 10 % 101159number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 2 def3def4def4b = number // 10 % 108
number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 0157 number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 1
159number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 2 151
152153
Output:
15Phương pháp-3: Sử dụng cách tiếp cận chung: & nbsp;
Python3
Nhận số
Khai báo một biến để lưu trữ tổng và đặt thành 0
159number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 2 151
152number = int(input()) try: a = number // 100 b = number // (10 % 10) c = number % 10 print(a + b + c) except ZeroDivisionError: print("Please enter another number that's not a multiple of 10.") number = int(input()) 22
Output:
15