0 chia cho 0 Python

ZeroDivisionError trong Python xuất hiện khi chúng ta cố gắng chia một số cho 0. Điều này là do, trong toán học, phép chia như vậy dẫn đến một số vô hạn [∞] không thể biểu diễn/định lượng về mặt vật lý

Nhân vật. a/b dẫn đến ZeroDivisionError nếu b==0 nếu không thì a/b đúng về mặt toán học

Tái tạo ZeroDivisionError [Các biến thể của Lỗi]

Tùy thuộc vào bản chất của phép chia và kiểu số của tử số, ZeroDivisionError có thể có các dạng khác nhau. Đây là một trong những hình thức

1

2

3

a = 9. 8

b = 0

a/b

đầu ra

1

Lỗi ZeroDivision. phao chia bởi không

Các biến thể khác bao gồm

  • ZeroDivisionLỗi. float modulo cho 9. 8%0,
  • ZeroDivisionLỗi. phép chia cho số 0 được tạo ra bởi 9/0
  • ZeroDivisionLỗi. phép chia số nguyên hoặc modulo cho 0 được tạo bởi 9 // 0 và,
  • ZeroDivisionLỗi. phép chia phức cho 0, được tạo bởi phức [9, 3]/0

Giải quyết lỗi ZeroDivision

Trước khi thực hiện bất kỳ giải pháp nào trong hai giải pháp được thảo luận ở đây, hãy đảm bảo rằng phép chia cho 0 là hành vi dự kiến

Một trong những tình huống phổ biến nhất dẫn đến phép chia không mong muốn cho số 0 là làm tròn số, kết quả là số không. Ví dụ: truyền một số float nhỏ hơn một vào một số nguyên dẫn đến ZeroDivisionError. Hãy xem điều đó trong mã

1

2

3

4

a = 8

b = int[3/4]

# b cũng giống như int[0. 75], bằng không

a/b

đầu ra

1

Lỗi ZeroDivision. chia cho không

Nếu chúng ta không làm tròn 3/4 thành số nguyên, a/b có thể đã được tính mà không có Lỗi, nhưng int[3/4]=int[0. 75]=0 do đó ZeroDivisionError

Sau khi bạn chắc chắn rằng phép chia cho 0 là hành vi dự kiến ​​trong tính toán của mình, bạn có thể sử dụng bất kỳ giải pháp nào sau đây để loại bỏ ZeroDivisionError

  • Giải pháp 1. Sử dụng câu lệnh if có điều kiện, hoặc,
  • Giải pháp 2. Xử lý lỗi bằng câu lệnh try-ngoại trừ

Giải pháp 1. Sử dụng câu lệnh if có điều kiện

Trong trường hợp này, chúng ta cần kiểm tra biến lưu số chia. Nếu số chia là 0, tránh phép chia. Ví dụ,

1

2

3

4

5

6

7

a = 9. 8

b = 0

if b == 0.

    kết quả = -99

khác.

    kết quả = a/b

in[kết quả]

đầu ra

1

-99

Trong ví dụ trên, biến lưu số chia là b. Vì b==0, chúng tôi đặt kết quả là -99 [bạn có thể sử dụng bất kỳ giá trị nào khác];

Chúng ta có thể giảm điều kiện if trong đoạn mã trên thành một lớp lót như sau

1

2

3

4

a = 9. 8

b = 0

kết quả = a/b if b!=0 khác -99

in[kết quả]

đầu ra

1

-99

Điều đó có nghĩa là, kết quả = a/b nếu b không bằng 0;

Giải pháp 2. Xử lý Lỗi bằng cách sử dụng Khối thử-ngoại trừ

Trong giải pháp này, chúng tôi cố gắng thực hiện phép chia [giả sử a/b] và nếu phép chia dẫn đến ZeroDivisionError, chúng tôi sẽ thực hiện một thao tác khác. Thí dụ

1

2

3

4

5

6

7

a = 9. 8

b = 0

thử.

    kết quả = a/b

ngoại trừ Lỗi ZeroDivision.

    kết quả = -99

in[kết quả]

đầu ra

1

-99

Trong đoạn mã trên, khối thử tính toán a/b và gán nó cho biến kết quả. Nếu ZeroDivisionError được nâng lên [đó là trường hợp với ví dụ của chúng tôi], khối ngoại trừ sẽ đặt kết quả biến thành giá trị -99 [một lần nữa, bạn có thể sử dụng bất kỳ giá trị nào phù hợp với trường hợp của mình]

Phần kết luận

ZeroDivisionError xảy ra khi bạn chia một số cho 0. Bước đầu tiên để giải quyết một lỗi như vậy là đảm bảo rằng các phép tính của bạn là chính xác và phép chia cho 0 là hành vi được chấp nhận

Khi bạn chắc chắn rằng không có gì sai với các tính toán của mình, bạn có thể sử dụng hai giải pháp được đề xuất trong bài viết này – sử dụng câu lệnh if hoặc xử lý lỗi bằng câu lệnh try-ngoại trừ

Chủ Đề