Hướng dẫn why does python division return float? - tại sao phân chia python trả về float?
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ư 1, 2, 3 và 4 cho các chức năng đặc biệt, như vậy, ví dụ: 5 tương đương với
Về sự phân chia trong Python 2, theo mặc định chỉ có 4 ánh xạ tới 7 và kết quả phụ thuộc vào các loại đầu vào (ví dụ: 8, 9).Python 2.2 đã giới thiệu tính năng # Two float values >> 7.0 // 2.0 3.0 # A single float value >> 7 // 2.0 3.0 # Two integers >> 7 // 2 30 # Two float values >> 7.0 // 2.0 3.0 # A single float value >> 7 // 2.0 3.0 # Two integers >> 7 // 2 31, đã 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 nào nữa 7 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 4 và # Two float values >> 7.0 // 2.0 3.0 # A single float value >> 7 // 2.0 3.0 # Two integers >> 7 // 2 34. 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, 4 và # Two float values >> 7.0 // 2.0 3.0 # A single float value >> 7 // 2.0 3.0 # Two integers >> 7 // 2 34. 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 4 đơ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, toán tử 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 34 trả về giá trị không có giá trị, 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 34, 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 Python có hai toán tử phân chia khác nhau, 4 và # Two float values >> 7.0 // 2.0 3.0 # A single float value >> 7 // 2.0 3.0 # Two integers >> 7 // 2 34. Cái nào bạn sử dụng phụ thuộc vào kết quả mà bạn muốn đạt được. Sự kết luậnPython có hai toán tử phân chia khác nhau, 4 và # Two float values >> 7.0 // 2.0 3.0 # A single float value >> 7 // 2.0 3.0 # Two integers >> 7 // 2 34. Cái nào bạn sử dụng phụ thuộc vào kết quả mà bạn muốn đạt được. Toán tử Slash 4 đơn lẻ được gọi là Phân chia Float, trả về giá trị điểm nổi.Mặt khác, toán tử 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 34 trả về giá trị không có giá trị, cụ thể là một số nguyên hoặc giá trị điểm nổi.
Trong Python, có hai loại phân chia: phân chia số nguyên và phân chia phao. 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 # Two float values >> 7.0 // 2.0 3.0 # A single float value >> 7 // 2.0 3.0 # Two integers >> 7 // 2 30. Xem mã bên dưới để biết cách sử dụng toán tử '//' trong Python 2. Toán tử '/' trong Python 2 trả về kết quả số nguyên nếu cả hai toán hạng là số nguyên. 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 Xem __future__ để biết tài liệu của mô -đun. Giải quyết vấ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. Tại sao bộ phận của tôi không làm việc trong Python? 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 0Xem __future__ để biết tài liệu của mô -đun.__future__ for documentation of the module. Giải quyết vấn đề Tại sao bộ phận của tôi không làm việc trong Python?Một đầu vào từ người dùng là một chuỗi theo mặc định.Để thực hiện các hoạt động toán học trên đầu vào, bạn cần thay đổi nó thành một số nguyên hoặc phao sử dụng int () hoặc float () tương ứng.. In order to perform mathematical operations on an input, you need to either change it to an integer or a float using int() or float() respectively.
Bộ phận trở lại trong Python là gì?Trong Python, có hai loại toán tử phân chia: /: chia số bên trái cho số bên phải của nó và trả về giá trị điểm nổi.//: Chia số ở bên trái cho số bên phải của nó, làm tròn câu trả lời và trả về một số toàn bộ.a floating point value. // : Divides the number on its left by the number on its right, rounds down the answer, and returns a whole number.
Python có phân chia nổi không?Trong Python 3, "/" Đồng đều hoạt động như một toán tử phân chia nổi.Vì vậy, nó luôn trả về loại float: 10/3 trả về 3.333333 thay vì 3, 6/3 trả về 2.0 thay vì 2."/" uniformly works as a float division operator. So, it always returns the float type: 10/3 returns 3.333333 instead of 3, 6/3 returns 2.0 instead of 2.
Python có tự động sử dụng phao không?Nếu số của bạn có số thập phân, Python sẽ tự động coi đó là một chiếc phao.Nếu nó không, nó sẽ tự động coi đó là một số nguyên.. If it does not, it will automatically consider it an integer. |