Python 2 sử dụng cú pháp in như một câu lệnh:
print "Hello, World!" # Cú pháp in cũ
Trong khi đó, Python 3 xem print
như một hàm:
print("Hello, World!") # Cú pháp in mới
Trong Python 2, có hai kiểu chuỗi: chuỗi byte (str
) và chuỗi Unicode (unicode
). Mặc định, chuỗi được coi là chuỗi byte:
my_string = "Hello" # Chuỗi byte my_unicode_string = u"Hello" # Chuỗi Unicode
Còn trong Python 3, chuỗi str
được coi là Unicode, và bytes
được sử dụng cho chuỗi byte:
my_string = "Hello" # Chuỗi Unicode my_bytes = b"Hello" # Chuỗi byte
Trong Python 2, phép chia giữa hai số nguyên trả về một số nguyên. Để có kết quả số thực, bạn cần ép kiểu ít nhất một trong hai số:
result = 5 / 2 # Kết quả: 2 result_float = 5.0 / 2 # Kết quả: 2.5
Ngược lại, trong Python 3, phép chia giữa hai số nguyên trả về số thực. Để lấy phần nguyên, bạn phải sử dụng //
:
result = 5 / 2 # Kết quả: 2.5 result_integer = 5 // 2 # Kết quả: 2
Trong Python 2, cú pháp xử lý lỗi sử dụng as
không bắt buộc:
try: # code except Exception, e: print e
Còn trong Python 3, cú pháp xử lý lỗi yêu cầu sử dụng as
:
try: # code except Exception as e: print(e)
Trong Python 2, hàm range()
trả về một danh sách:
numbers = range(5) # Trả về [0, 1, 2, 3, 4]
Trong Python 3, hàm range()
trả về một iterator, giúp tiết kiệm bộ nhớ hơn:
numbers = range(5) # Trả về một iterator
Nhiều thư viện được cập nhật hoặc thay đổi giữa hai phiên bản:
Trong Python 2, một số thư viện không còn được hỗ trợ trong Python 3.
Còn trong Python 3, nhiều thư viện và module được cải thiện, và một số được loại bỏ hoàn toàn.
Trong Python 2, bạn có thể sử dụng %
để định dạng chuỗi:
name = "Alice" greeting = "Hello, %s!" % name # Kết quả: "Hello, Alice!"
Còn trong Python 3, có nhiều cách để định dạng chuỗi, bao gồm f-strings (Python 3.6 trở đi):
name = "Alice" greeting = f"Hello, {name}!" # Kết quả: "Hello, Alice!"
Trong Python 2, hỗ trợ kết nối (byte) hạn chế.
Trong khi đó, Python 3 cung cấp hỗ trợ tốt hơn cho các loại dữ liệu nhị phân và mã hóa.
Việc chuyển từ Python 2 sang Python 3 không chỉ đơn thuần là cập nhật cú pháp mà còn mang lại nhiều cải tiến về hiệu suất, khả năng mở rộng và khả năng xử lý Unicode. Python 3 hiện nay là phiên bản được khuyến nghị cho tất cả các dự án mới, và việc sử dụng Python 2 đã không còn được hỗ trợ chính thức. Nếu bạn đang bắt đầu một dự án mới, hãy sử dụng Python 3 để tận dụng những cải tiến và tính năng mới nhất.