Python thường được quảng cáo là một trong những ngôn ngữ lập trình tốt nhất cho người mới bắt đầu học, và cú pháp và chức năng đơn giản của nó khiến điều đó trở nên khó tranh luận. Nhưng rất nhiều hướng dẫn vẫn sử dụng Python 2, hiện đã lỗi thời. Python 3 giới thiệu nhiều tính năng mới và điều quan trọng là phải biết về chúng trong tương lai, cũng như sự khác biệt chính giữa Python 3 và người tiền nhiệm của nó.
Python 2 được phát hành lần đầu tiên vào năm 2000. Nó đã cải tiến các phiên bản ngôn ngữ trước đó và giới thiệu các tính năng phổ biến cho các ngôn ngữ lập trình khác như thu gom rác, hiểu danh sách và hỗ trợ Unicode. Phiên bản 2.1 có một vài nâng cấp nhỏ và 2.2 được phát hành vào cuối năm 2001. Phiên bản 2.2 có sự hợp nhất kiểu đặc trưng, hợp nhất các loại và các lớp thành một hệ thống phân cấp duy nhất, biến Python thành ngôn ngữ hướng đối tượng.
Các phiên bản đã phát triển cho đến Python 2.7, là phiên bản chính cuối cùng cho đến Python 3. Python 2 đã chính thức nghỉ hưu vào ngày đầu tiên của năm 2020. Python 3, bắt đầu đầu tiên vào năm 2008, hiện là tùy chọn mới nhất, với phiên bản 3.8.3 là bản cập nhật mới nhất.
Chức năng in
Sự khác biệt đầu tiên và có thể là đáng chú ý nhất trong Python 3 là chức năng in . Trong Python 2, in có thể được sử dụng với dấu ngoặc đơn:
print(‘Hello, world.’)
Hoặc không có:
print ‘Hello, world.’
Trong Python 3, dấu ngoặc đơn phải được sử dụng:
print ‘Hello, world.’
Các số nguyên
Python 3 cũng xử lý việc phân chia các số nguyên khác nhau. Trong phiên bản 2, việc chia hai số nguyên sẽ mang lại kết quả là một số nguyên:
print 5 / 3
1
Nhưng trong Python 3, một giá trị float được trả về:
print(5 / 3)
1.6666666666666667
Chức năng phạm vi
Trong Python 2, hàm xrange được sử dụng để lặp, trong các vòng lặp, cũng như lặp qua danh sách hoặc từ điển:
for x in xrange(1, 10):
print(x)
Trong phiên bản 3, xrange được thay thế bằng chức năng phạm vi :
for x in range(1, 10):
print(x)
Ưu điểm của xrange là nhanh hơn khi lặp qua danh sách một lần. Tuy nhiên, nó không hỗ trợ ghép nối và các phương pháp định hướng danh sách khác, vì vậy sử dụng phạm vi hiện được ưu tiên.
Unicode
Python 2 lưu trữ các chuỗi dưới dạng các giá trị ASCII . Để lưu trữ chúng bằng Unicode, nó cần được chỉ định bằng u như vậy:
print(u’Hello’)
Trong Python 3, các chuỗi hiện được coi là Unicode theo mặc định, do đó không cần chỉ định:
print(‘Hello’)
Ngoại lệ
Cách xử lý các ngoại lệ và lỗi đã thay đổi trong Python 3. Trong phiên bản 2, các ngoại lệ trông giống như thế này:
try:
checking_error
except NameError, err:
print err, ‘Error found’
Trong phiên bản 3, chúng ta cần thêm từ khóa dưới dạng :
try:
checking_error
except NameError as err:
print(err, ‘Error found’)
Python 3 cũng xử lý các trường hợp ngoại lệ được nêu ra. Trong phiên bản 2:
raise IOError, ‘error’
Trong phiên bản 3, dấu ngoặc đơn là bắt buộc:
raise IOError(‘error’)
Rò rỉ biến
Trong Python 2, các biến trong vòng lặp for sẽ rò rỉ vào không gian tên toàn cục. Điều này có nghĩa là các biến toàn cục có thể thay đổi trong khi bên trong vòng lặp. Trong Python 3, nó đã được điều chỉnh và giá trị của các biến không bao giờ thay đổi.
Mô-đun tương lai
Python 3 đã thêm một số từ khóa và tính năng nhất định không tương thích với Python 2. May mắn thay, có một cách dễ dàng để sử dụng chức năng của phiên bản 3 trong mã chạy Python 2 – mô-đun _future_. Để giúp di chuyển sang Python 3, chỉ cần sử dụng nhập khẩu trong tương lai:
from _future_ import division
Bây giờ có hỗ trợ Python 3 trong mã Python 2.
Ưu điểm của Python 3
Bây giờ chúng ta đã trải qua các thay đổi trong Python 3, thật dễ dàng để thấy một số lợi thế của nó so với phiên bản đã nghỉ hưu. Những thứ như chức năng in thực sự hoạt động như một chức năng là tốt, cũng như cách xử lý phân chia. Hỗ trợ Unicode là một lợi thế khác 3 có hơn 2 – không phải lo lắng về việc chỉ định nó. Xử lý lỗi cũng mạnh mẽ hơn trong Python 3 và cho phép theo dõi và gỡ lỗi dễ dàng hơn .
Một trong những mục tiêu chính của Python 3 là loại bỏ một số dư thừa đã có trong phiên bản 2. Vì ngôn ngữ này thường được người mới bắt đầu sử dụng và sử dụng , nên các nhà phát triển muốn làm rõ chỉ có một cách duy nhất để thực hiện hoạt động. Cuối cùng, ưu điểm lớn nhất của Python 3 là nó đang được phát triển tích cực, cho phép codebase trở nên hiệu quả và hoạt động hơn khi thời gian trôi qua.
Python 2 đã chính thức nghỉ hưu, vì vậy hãy tham gia nhóm và di chuyển sang Python 3 càng sớm càng tốt. Và những bạn có ứng dụng Python gốc trên GitHub, hãy đảm bảo cập nhật lên Python 3 để người dùng của bạn không gặp phải bất kỳ trục trặc nào.