Nội dung chính
1. Xét đoạn code ví dụ sau, trong Python 2.7:
Đoạn chương trình viết trên Python phiên bản 2.7 để mô tả
# A Python 2.7 program to demonstrate use of
# "/" for integers
print 5/2
print -5/2
Kết quả
2
-3
Kết quả in ra đầu tiên (số 2) là hợp lý, nhưng kết quả được in ra thứ hai (số -3) có lẽ sẽ gây ngạc nhiên cho những bạn đang quen làm việc với Java/C++. Trong Python 2.7, toán tử chia “/” hoạt động như một phép chia làm tròn xuống (floor division) dành cho các đối số truyền vào kiểu integer. Tuy nhiên, toán tử / sẽ trả về một giá trị kiểu float nếu một trong các đối số truyền vào cho hàm toán tử có kiểu float (điều này tương tự với C++).
# A Python 2.7 program to demonstrate use of
# "/" for floating point numbers
print 5.0/2
print -5.0/2
Kết quả in ra là:
2.5
-2.5
Toán tử chia làm tròn xuống thực sự phải là “//”. Nó trả về giá trị đã được làm tròn xuống cho cả các đối số truyền vào hàm toán tử có kiểu nguyên (integer) và kiểu số thực dấu phẩy động (floating point).
# A Python 2.7 program to demonstrate use of
# "//" for both integers and floating points
print 5//2
print -5//2
print 5.0//2
print -5.0//2
Kết quả in ra là:
2
-3
2.0
-3.0
2. Python 3 thì sao?
Sau đây lại là một sự ngạc nhiên nữa, trong Python 3, toán tử / sẽ thực hiện phép chia số thực dấu phẩy động (floating point division) cho cả các đối số truyền vào hàm toán tử có kiểu int và float.
Ví dụ:
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------
# A Python 3 program to demonstrate use of
# "/" for both integers and floating points
print (5/2)
print (-5/2)
print (5.0/2)
print (-5.0/2)
Kết quả in ra là:
2.5
-2.5
2.5
-2.5
Toán tử chia làm tròn xuống “//” sẽ hoạt động giống nhau trong cả phiên bản Python 2.7 và Python 3.
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!