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.
Các nhà khai thác bản đồ Python như +
, -
, *
và
from __future__ import division
0 cho các chức năng đặc biệt, như vậy, ví dụ: from __future__ import division
1 tương đương vớia.__add__[b]
Về sự phân chia trong Python 2, theo mặc định chỉ có
from __future__ import division
0 ánh xạ tới from __future__ import division
3 và kết quả phụ thuộc vào các loại đầu vào [ví dụ: from __future__ import division
4, from __future__ import division
5].Python 2.2 đã giới thiệu tính năng
from __future__ import division
6 from __future__ import division
7, đã thay đổi ngữ nghĩa phân chia theo cách sau [TL; DR của PEP 238]:
0 Bản đồ thànhfrom __future__ import division
9 phải "trả lại xấp xỉ hợp lý về kết quả toán học của bộ phận" [trích dẫn từ PEP 238]from __future__ import division
0 Bản đồ đếnCopied!
result_1 = 30 // 6 print[result_1] # 👉️ 5 print[type[result_1]] # 👉️ result_2 = 30 / 6 print[result_2] # 👉️ 5.0 print[type[result_2]] # 👉️
1, sẽ trả lại kết quả củaCopied!
result_1 = 30 // 6 print[result_1] # 👉️ 5 print[type[result_1]] # 👉️ result_2 = 30 / 6 print[result_2] # 👉️ 5.0 print[type[result_2]] # 👉️
0from __future__ import division
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
from __future__ import division
3 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
from __future__ import division
và gắn bó với ngữ nghĩa PEP 238 của
from __future__ import division
0 và 0.Copied!
result_1 = 30 // 6 print[result_1] # 👉️ 5 print[type[result_1]] # 👉️ result_2 = 30 / 6 print[result_2] # 👉️ 5.0 print[type[result_2]] # 👉️
Trả lại một số nguyên từ Phân chia số nguyên trong Python #
Sử dụng toán tử phân chia sàn Copied! Copied!
0 để trả về một số nguyên từ bộ phận số nguyên, ví dụ: result_1 = 30 // 6
print[result_1] # 👉️ 5
print[type[result_1]] # 👉️
result_2 = 30 / 6
print[result_2] # 👉️ 5.0
print[type[result_2]] # 👉️
result_1 = 30 // 6
print[result_1] # 👉️ 5
print[type[result_1]] # 👉️
result_2 = 30 / 6
print[result_2] # 👉️ 5.0
print[type[result_2]] # 👉️
7. Nhà điều hành phân chia sàn sẽ luôn trả về một số nguyên và giống như sử dụng phân chia toán học với hàm 8 được áp dụng cho kết quả.Copied!
result_1 = 30 // 6 print[result_1] # 👉️ 5 print[type[result_1]] # 👉️ result_2 = 30 / 6 print[result_2] # 👉️ 5.0 print[type[result_2]] # 👉️
Copied!
result_1 = 30 // 6 print[result_1] # 👉️ 5 print[type[result_1]] # 👉️ result_2 = 30 / 6 print[result_2] # 👉️ 5.0 print[type[result_2]] # 👉️
Chúng tôi đã sử dụng nhà điều hành phân chia sàn
0 để trả về một số nguyên từ INT Division.Copied!
result_1 = 30 // 6 print[result_1] # 👉️ 5 print[type[result_1]] # 👉️ result_2 = 30 / 6 print[result_2] # 👉️ 5.0 print[type[result_2]] # 👉️
Phân khu Copied!
0 của các số nguyên mang lại một chiếc phao, trong khi phân chia sàn from __future__ import division
0 của số nguyên dẫn đến một số nguyên.result_1 = 30 // 6
print[result_1] # 👉️ 5
print[type[result_1]] # 👉️
result_2 = 30 / 6
print[result_2] # 👉️ 5.0
print[type[result_2]] # 👉️
Kết quả của việc sử dụng toán tử phân chia sàn là phân chia toán học với hàm
8 được áp dụng cho kết quả.Copied!
result_1 = 30 // 6 print[result_1] # 👉️ 5 print[type[result_1]] # 👉️ result_2 = 30 / 6 print[result_2] # 👉️ 5.0 print[type[result_2]] # 👉️
Copied!
print[11 // 2] # 👉️ 5 print[11 / 2] # 👉️ 5.5
Bạn có thể sử dụng phương pháp
3 theo cách tương tự như cách chúng tôi sử dụng toán tử phân chia sànCopied!
print[11 // 2] # 👉️ 5 print[11 / 2] # 👉️ 5.5
0.Copied!
result_1 = 30 // 6 print[result_1] # 👉️ 5 print[type[result_1]] # 👉️ result_2 = 30 / 6 print[result_2] # 👉️ 5.0 print[type[result_2]] # 👉️
Copied!
import math result_1 = math.floor[11 / 2] print[result_1] # 👉️ 5 result_2 = 11 / 2 print[result_2] # 👉️ 5.5
Phương thức Math.Floor trả về số nguyên lớn nhất hoặc bằng số được cung cấp.
Ngoài ra còn có một phương pháp
5.Copied!
print[11 // 2] # 👉️ 5 print[11 / 2] # 👉️ 5.5
Copied!
import math result_1 = math.ceil[11 / 2] print[result_1] # 👉️ 6 result_2 = 11 / 2 print[result_2] # 👉️ 5.5
Phương thức Math.ceil trả về số nguyên nhỏ nhất lớn hơn hoặc bằng số được cung cấp.
Bạn cũng có thể sử dụng hàm
6 nếu bạn muốn làm tròn đến số nguyên gần nhất khi chia.Copied!
print[11 // 2] # 👉️ 5 print[11 / 2] # 👉️ 5.5
Copied!
result_1 = round[15 / 4] print[result_1] # 👉️ 4 result_2 = 15 / 4 print[result_2] # 👉️ 3.75
Hàm vòng lấy 2 tham số sau:
7 | con số đến vòng đến độ chính xác 8 sau thập phân |
8 | Số chữ số sau thập phân, số lượng nên có sau khi hoạt động [tùy chọn] |
Hàm
0 trả về số được làm tròn đến độ chính xác củaCopied!
import math result_1 = math.floor[11 / 2] print[result_1] # 👉️ 5 result_2 = 11 / 2 print[result_2] # 👉️ 5.5
8 sau điểm thập phân.Copied!
print[11 // 2] # 👉️ 5 print[11 / 2] # 👉️ 5.5
Nếu
8 bị bỏ qua, hàm trả về số nguyên gần nhất.Copied!
print[11 // 2] # 👉️ 5 print[11 / 2] # 👉️ 5.5