1. Cú Pháp In
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
2. Quản Lý Chuỗ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
3. Tính Toán Số Học
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
4. Xử Lý Lỗi
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)
5. Iterators và Generators
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
6. Thư Viện Mặc Định
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.
7. Chuỗi Định Dạng
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!"
8. Hỗ Trợ Kết Nối
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.
Kết Luận
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.