Câu trả lời được chấp nhận đã đề cập đến PEP 238. Tôi chỉ muốn thêm một cái nhìn nhanh chóng đằng sau hậu trường cho những người quan tâm đến những gì đang diễn ra mà không cần đọc toàn bộ PEP. Show Các nhà khai thác bản đồ Python như 0 và 1 cho các chức năng đặc biệt, như vậy, ví dụ: 2 tương đương với
Về sự phân chia trong Python 2, theo mặc định chỉ có 1 ánh xạ tới 4 và kết quả phụ thuộc vào các loại đầu vào (ví dụ: 5, 6).Python 2.2 đã giới thiệu tính năng 7 8, đã thay đổi ngữ nghĩa phân chia theo cách sau (TL; DR của PEP 238):
Với Python 3.0, những thay đổi của PEP 238 đã trở thành hành vi mặc định và không có phương pháp đặc biệt 4 nào trong mô hình đối tượng của Python.Nếu bạn muốn sử dụng cùng một mã trong Python 2 và Python 3
và dính vào ngữ nghĩa PEP 238 của 1 và # Two float values >> 7.0 // 2.0 3.0 # A single float value >> 7 // 2.0 3.0 # Two integers >> 7 // 2 31. 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 nhauPhân chia sàn Python
Python có hai toán tử phân chia khác nhau, 1 và # Two float values >> 7.0 // 2.0 3.0 # A single float value >> 7 // 2.0 3.0 # Two integers >> 7 // 2 31. Cái nào bạn sử dụng phụ thuộc vào kết quả mà bạn muốn đạt được.floor value. Toán tử Slash 1 đơn lẻ được gọi là Phân chia Float, trả về giá trị điểm nổi.# 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 khác, người vận hành chém gấp đôi # Two float values >> 7.0 // 2.0 3.0 # A single float value >> 7 // 2.0 3.0 # Two integers >> 7 // 2 31 trả về giá trị nổi, cụ thể là một số nguyên hoặc giá trị điểm nổi. >> -7.0 // 3 -3.0 Phân chia sàn Python, sử dụng toán tử # Two float values >> 7.0 // 2.0 3.0 # A single float value >> 7 // 2.0 3.0 # Two integers >> 7 // 2 31, 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. Phân chia phao PythonSự kết luận # 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:
Hàm phân chia trong Python có hai biến thể:
Phân chia phao ( /)Hoạt động phân chia float 1 được sử dụng khi bạn muốn kết quả phân chia chính xác hơn, vì nó không làm tròn giá trị cho toàn bộ số.Cần lưu ý rằng đối với các giá trị thập phân định kỳ, có giới hạn về số lượng biến 6 có thể lưu trữ, do đó không phải lúc nào cũng có thể lưu trữ giá trị chính xác.Giá trị trả về cho toán tử phân chia float luôn thuộc loại 6, ngay cả khi các toán hạng của toán tử không phải là các biến 6.
Ví dụ phân chia floatVí dụ về mã sau đây cho thấy rằng bất kể loại dữ liệu số nào là biến của bạn, câu trả lời của bạn luôn ở loại 6 nếu bạn sử dụng toán tử phân chia float.
Phân chia số nguyên (//)Hoạt động phân chia số nguyên # Two float values >> 7.0 // 2.0 3.0 # A single float value >> 7 // 2.0 3.0 # Two integers >> 7 // 2 31 được sử dụng khi bạn muốn câu trả lời của mình có số lượng. Vì điều rất phổ biến cho kết quả chia hai số nguyên là một giá trị thập phân, trong các số nguyên Python3, phân chia kết quả cho giới hạn dưới được gọi là sàn kết quả. Giá trị trả về cho toán tử phân chia số nguyên là loại # Two integers >> 7 / 3 2.33 # One floating point value >> 7.0 / 3 2.33 # Two floating point values >> 7.0 / 3.0 2.331 nếu các toán hạng là cả số nguyên. Ngược lại, nó trả về giá trị 6 nếu một trong các toán hạng là một chiếc phao.
Ví dụ phân chia số nguyênVí dụ mã sau đây cho thấy sự phân chia của hai số nguyên để tạo ra kết quả số nguyên.
Ví dụ sau đây chứng minh rằng nếu một trong các toán hạng (hoặc cả hai) là 6, thì câu trả lời cũng là 6, nhưng được làm tròn đến số toàn bộ giới hạn dưới gần nhất.
Lưu ý làm thế nào kết quả là giá trị loại 6, nhưng giống như đối với phân chia số nguyên thông thường mà chúng ta đã thấy trước đó, kết quả vẫn còn được. Điều này có nghĩa là chỉ phần thương số được giữ từ câu trả lời nổi ban đầu, trong khi mọi thứ đến sau khi số thập phân bị loại bỏ và được biểu thị bằng 0.Bản quyền © 2022 Giáo dục, Inc. Tất cả quyền được bảo lưu Tại sao sự phân chia là nổi trong Python?Hoạt động phân chia float / được sử dụng khi bạn muốn kết quả phân chia chính xác hơn, vì nó không làm tròn giá trị cho toàn bộ số.Cần lưu ý rằng đối với các giá trị thập phân định kỳ, có giới hạn về số lượng biến một biến nổi có thể lưu trữ, do đó không phải lúc nào cũng có thể lưu trữ giá trị chính xác.when you want a more precise division result, as it does not round off the value to whole numbers. It must be noted that for recurring decimal values, there is a limit to how many digits a float variable can store, so it is not always possible to store the exact value.
Bộ phận có dẫn đến một chiếc phao không?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.. For example, . 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. |