Hướng dẫn integer division vs float division python - phân chia số nguyên so với phân chia float python
Trong Python, có hai loại phân chia: phân chia số nguyên và phân chia phao. Show Phân chia số nguyên Bộ phận số nguyên trả lại sàn của bộ phận. Đó là, các giá trị sau điểm thập phân bị loại bỏ. Nó được viết là '//' trong Python 3. Vì vậy, 1 // 3 = 0, 2 // 3 = 0 và 3 // 3 = 1. Các giá trị số nguyên được lưu trữ chính xác, vì vậy chúng an toàn để sử dụng trong so sánh. Trong Python 2, toán tử '//' không được bao gồm, do đó, nó phải được nhập từ mô -đun Python 2 # Python 2 integer division using '//' from __future__ import division print 4//3 # prints 1 hoặc # Python 2 integer division using '/' print 4/3 # prints 1 Python 3 # Python 3 integer division print(4//3) # prints 1 Phân chia phao Phân chia float trả về một xấp xỉ điểm nổi của kết quả của một bộ phận. Ví dụ, . Chỉ có một số giá trị nhất định sau khi thập phân có thể được lưu trữ, do đó không thể lưu trữ một biểu diễn nhị phân chính xác của nhiều số điểm nổi. Điều này đôi khi dẫn đến các vấn đề khi so sánh các số hoặc khi làm tròn.. Only a certain number of values after the decimal can be stored, so it is not possible to store an exact binary representation of many floating point numbers. This sometimes leads to problems when comparing numbers or when rounding. Trong Python 2, toán tử phân chia tiêu chuẩn duy nhất là '/'. Nếu cả hai giá trị là số nguyên, kết quả là một số nguyên. Nếu một trong những giá trị là một chiếc phao, lợi nhuận là một chiếc phao. Mô -đun Python 2 from __future__ import division # floating point division using __future__ syntax print 4 / 3 # prints 1.33333333333 hoặc # floating point division using a float to force float result # no need to import from __future__ print 4 / 3.0 # prints 1.33333333333 Python 3 print(4 / 3) # prints 1.33333333333 Phân chia phao__future__ for documentation of the module. Phân chia float trả về một xấp xỉ điểm nổi của kết quả của một bộ phận. Ví dụ, . Chỉ có một số giá trị nhất định sau khi thập phân có thể được lưu trữ, do đó không thể lưu trữ một biểu diễn nhị phân chính xác của nhiều số điểm nổi. Điều này đôi khi dẫn đến các vấn đề khi so sánh các số hoặc khi làm tròn. Trong bài đăng này, bạn sẽ học Python 3 Division, cũng như một số điều kỳ quặc bất ngờ của nó. Bạn sẽ học cách sử dụng cả phương pháp số nguyên và sàn, cũng như cách diễn giải một số kết quả ít được mong đợi của nó. Phân khu Python - Những cách khác nhauPython có hai toán tử phân chia khác nhau, # Python 2 integer division using '/' print 4/3 # prints 11 và # Python 2 integer division using '/' print 4/3 # prints 12. Cái nào bạn sử dụng phụ thuộc vào kết quả mà bạn muốn đạt được.
Phân chia sàn Python, sử dụng toán tử # Python 2 integer division using '/' print 4/3 # prints 12, hoạt động bằng cách trả lại giá trị nổi của thương số của nó. Điều này hoạt động khác với phân chia số nguyên sẽ làm tròn số. Thay vào đó, điều này hoạt động bằng cách trả lại giá trị sàn.floor value. Hãy cùng xem cách thức hoạt động của nó trong hành động, bằng cách xem xét một vài ví dụ: # Two float values >> 7.0 // 2.0 3.0 # A single float value >> 7 // 2.0 3.0 # Two integers >> 7 // 2 3 Một lưu ý thú vị về điều này là những gì xảy ra với các số âm: >> -7.0 // 3 -3.0 Về mặt logic, điều này có ý nghĩa. Kết quả sẽ được làm tròn xuống (tức là, đứng), có nghĩa là trong khi chúng ta có thể mong đợi nó bằng # Python 2 integer division using '/' print 4/3 # prints 16, được làm tròn xuống, giá trị là chính xác # Python 2 integer division using '/' print 4/3 # prints 17. Phân chia phao PythonBộ phận Float Python sử dụng toán tử # Python 2 integer division using '/' print 4/3 # prints 11 và trả về, tốt, một giá trị điểm nổi. Điều này, có lẽ, nhiều hơn là cách bạn mong đợi sự phân chia sẽ hoạt động. Hãy cùng xem xét một vài ví dụ nữa: # Two integers >> 7 / 3 2.33 # One floating point value >> 7.0 / 3 2.33 # Two floating point values >> 7.0 / 3.0 2.33 Như bạn có thể thấy, kết quả trả về các giá trị mà bạn mong đợi, bất kể bạn có phân chia số nguyên, phao hay sự pha trộn của cả hai. Sự kết luậnChia trong Python cung cấp các cách khác nhau để chia số. Có một sự hiểu biết vững chắc về các nhà khai thác này làm cho bạn trở thành một lập trình viên tốt hơn nhiều bằng cách hiểu rõ về những điều cơ bản. Để tìm hiểu thêm về những điều này, hãy xem các tài liệu chính thức. Kiểm tra một số hướng dẫn Python khác ở đây. Để tìm hiểu thêm về các chủ đề liên quan, hãy xem các hướng dẫn dưới đây:
Làm thế nào để bạn thực hiện phân chia số nguyên và phân chia float trong Python?Trong Python 2, toán tử phân chia tiêu chuẩn duy nhất là '/'. Nếu cả hai giá trị là số nguyên, kết quả là một số nguyên. Nếu một trong hai giá trị là một chiếc phao, return là một float. Mô -đun __future__ có thể được sử dụng để '/' đại diện cho sự phân chia điểm nổi như trong Python 3.If both values are integers, the result is an integer. If either of the values is a float, the return is a float. The __future__ module can be used so that '/' represents floating point division as it does in Python 3.
Sự khác biệt giữa phân chia và phân chia phao là gì?/ vs // - Phân khu VS Sân bộ phân chia toàn bộ sự phân chia thường xuyên luôn là một chiếc phao, trong khi nếu một trong các toán hạng là một chiếc phao trong phân chia sàn, thì đầu ra sẽ là một chiếc phao.The result of regular division is always a float, whereas if one of the operands is a float in floor division, then the output will be a float.
Python có làm phân chia số nguyên không?Trong Python 3. X, toán tử Slash ("/") thực hiện phân chia thực sự cho tất cả các loại bao gồm các số nguyên, và do đó, ví dụ:3/2 == 1.5.Kết quả là loại điểm nổi ngay cả khi cả hai đầu vào đều là số nguyên: 4/2 mang lại 2.0.
Là bộ phận số nguyên nhanh hơn python?Về lý do tại sao phân chia sàn Python Int không có Numpy mất nhiều thời gian hơn so với sự phân chia thực sự, đó là một lý do tương tự, nhưng có một vài yếu tố phức tạp: (Giúp Int / Int, Hurts Int // Int) Các vấn đề về chi phí phần cứng tương tự từ Numpy áp dụng;IDIV chậm hơn FDIV.non- numpy Python int floor division takes longer than true division, it's a similar reason, but there are a few complicating factors: (Helps int / int , hurts int // int ) The same hardware instruction overhead issues from numpy apply; IDIV is slower than FDIV . |