Tháng 1 năm 1994, phiên bản đầu tiên của Python 1. 0 đã được phát hành. Phiên bản 1 này bao gồm các tính năng mới chính như bộ lọc công cụ lập trình chức năng, thu nhỏ, bản đồ, lambda, v.v.
Phiên bản 2. Trăn 2. 0
Sáu năm rưỡi sau, Python 2. 0 được giới thiệu vào tháng 10 năm 2000. Trong bản phát hành này, một trình thu gom rác đầy đủ, khả năng hiểu danh sách python đã được bao gồm và nó cũng hỗ trợ Unicode
Phiên bản 3. Trăn 3. 0
Python sau 8 năm, bản phát hành chính tiếp theo đã được thực hiện. Bản phát hành này là Python 3. 0 còn được gọi là "Py3K" hoặc "Python 3000"
Quan tâm đến việc học Python?
Những thay đổi chính trong Python 3. 0 là
- Trong phiên bản này, Print là một hàm Python
- Thay vì danh sách, trong phiên bản này, chúng tôi có Chế độ xem và trình vòng lặp
- Trong phiên bản này, chúng tôi có các quy tắc đơn giản hơn để so sánh thứ tự. Ví dụ: chúng ta không thể sắp xếp danh sách không đồng nhất, vì mỗi phần tử của Danh sách Python phải so sánh được với các phần tử khác
- Trong phiên bản python này, int. long cũng là một số nguyên vì chỉ có một kiểu số nguyên
- Trong phiên bản python này, khi chúng ta chia hai số nguyên, kết quả trả về là một số float thay vì một số nguyên. Chúng ta có thể sử dụng “//” để có hành vi “cũ”
- Trong phiên bản python này, Thay vì Unicode Vs. 8-bit chúng ta có Văn bản Vs. Dữ liệu
- Một nhược điểm của Python 3. 0 là nó không tương thích ngược với Python 2. x
Sự khác biệt giữa Python 2. 0 và Python3. 0
FactorCodePython 2. 0 đầu raPython 3. 0 đầu raChức năng inprint ‘Xin chào thế giới’print[‘Xin chào, intellipaat’]Xin chào thế giớiXin chào, intellipaatSyntaxError. cú pháp không hợp lệXin chào, intellipaatDivision toán tử print[7 / 5]in[-7 / 5]1
-21. 4
-1. 4 Xử lý ngoại lệ trong Python Thử.
trying_to_check_error
ngoại trừ NameError, err.
in err, ‘Lỗi Gây ra’tên ‘trying_to_check_error’ không được xác định Lỗi Gây ra Tệp “mới. py”, dòng 4
ngoại trừ NameError, err.
^
Lỗi cú pháp. cú pháp không hợp lệ
# chúng ta cần thêm as thay cho dấu phẩy sau NameError để nó hoạt động
Bắt đầu sự nghiệp của bạn trong Python với Khóa học Python hoàn hảo ở New York ngay bây giờ
Python Phiên bản mới nhất
Phiên bản mới nhất của Python là 3. 7. 0. Phiên bản ổn định này được phát hành vào ngày 27 tháng 6.
Trăn 3. 7 nhằm mục đích biến các tác vụ phức tạp trở nên đơn giản và Hiện tại nó đang được phát hành sản xuất. Những cải tiến đối với Python 3. 7 phiên bản bao gồm.
- Các lớp dữ liệu làm giảm bản mẫu khi làm việc với dữ liệu trong các lớp
- Một "chế độ phát triển" cho trình thông dịch
- Một tích hợp mới để kích hoạt trình gỡ lỗi
- Chế độ UTF-8 sử dụng mã hóa UTF-8 theo mặc định trong môi trường
- Một thay đổi có khả năng không tương thích ngược liên quan đến việc xử lý các ngoại lệ trong trình tạo
- Các đối tượng thời gian có độ phân giải nano giây
Kiểm tra phiên bản Python
Hầu hết các hệ điều hành sẽ cài sẵn python. Để kiểm tra phiên bản Python nào bạn có trong hệ thống của mình, bạn có thể
Python 2 ra mắt năm 2000 với những thay đổi lớn đối với việc lưu trữ mã nguồn. Nó giới thiệu nhiều tính năng mong muốn như hỗ trợ unicode, hiểu danh sách và thu gom rác. Một lát sau, Python 2. 2 đã giới thiệu sự hợp nhất của các loại và lớp dưới một hệ thống phân cấp, cho phép Python thực sự hướng đối tượng
Vào khoảng thời gian này, nhiều lập trình viên đã sử dụng Python làm ngôn ngữ kịch bản thay thế. Vì Java đang thống trị thế giới ứng dụng quy mô doanh nghiệp nên Python được sử dụng trong các ứng dụng nhỏ hơn, thích hợp hơn
Ngay cả các nhà phát triển Java cũng bắt đầu sử dụng Python để tăng tốc độ viết mã của họ do khả năng tương tác của nó
bảng chữ cái
Trăn 2. 0 đã giới thiệu kiểu dữ liệu chuỗi Unicode phân bổ các số 16 bit để biểu thị các ký tự thay vì các chuỗi 8 bit tiêu chuẩn. Điều này bổ sung thêm 65.000 ký hiệu được hỗ trợ từ các ngôn ngữ chữ viết không phải chữ Latinh như tiếng Nga, tiếng Trung hoặc tiếng Ả Rập. Nó cũng thêm hỗ trợ cho các ký tự không phải chữ cái như biểu tượng cảm xúc
Cú pháp cho chuỗi Unicode là
u`unicode string`
Bạn cũng có thể sử dụng unicode để mã hóa các chuỗi của riêng mình thành một ký hiệu duy nhất. Việc gọi ký hiệu duy nhất đó sau này trong mã của bạn cho phép bạn tham chiếu cùng một chuỗi được mã hóa đó mà không cần sử dụng thêm khoảng trống hoặc lưu nó vào một biến
Sau đây viết một chuỗi unicode vào tệp và mã hóa nó thành
import codecs
unistr = u'\u0660\u2000ab ...'
[UTF8_encode, UTF8_decode,
UTF8_streamreader, UTF8_streamwriter] = codecs.lookup['UTF-8']
output = UTF8_streamwriter[ open[ '/tmp/output', 'wb'] ]
output.write[ unistr ]
output.close[]
5import codecs
unistr = u'\u0660\u2000ab ...'
[UTF8_encode, UTF8_decode,
UTF8_streamreader, UTF8_streamwriter] = codecs.lookup['UTF-8']
output = UTF8_streamwriter[ open[ '/tmp/output', 'wb'] ]
output.write[ unistr ]
output.close[]
Sau đó, bạn có thể đọc tệp được mã hóa đó sau bằng cách sử dụng
input = UTF8_streamreader[ open[ '/tmp/output', 'rb'] ]
print repr[input.read[]]
input.close[]
Hiểu danh sách
Khả năng hiểu danh sách được sử dụng để tạo danh sách mới từ các lần lặp khác. Khả năng hiểu danh sách nhận và trả về danh sách, cho phép bạn cắt bớt danh sách theo một tiêu chí nhất định hoặc tạo danh sách mới với các thành phần mới được thao tác
Cú pháp để hiểu danh sách là
new_list = [expression for_loop_one_or_more conditions]
Phần sau đây cho thấy cách bạn có thể sử dụng khả năng hiểu danh sách để trả về một danh sách mới chỉ có các phần tử có trong cả hai danh sách đã chuyển
list_a = [1, 2, 3, 4]
list_b = [2, 3, 4, 5]
common_num = [a for a in list_a for b in list_b if a == b]
print[common_num] # Output: [2, 3, 4]
Chu kỳ thu gom rác
Trăn 2. 0 đại tu hệ thống thu gom rác bằng cách chuyển từ hệ thống dựa trên bộ đếm sang hệ thống dựa trên chu kỳ
Trong hệ thống cũ, mỗi đối tượng sẽ chứa một bộ đếm ghi lại có bao nhiêu đối tượng khác đang trỏ đến nó. Sau đó, đối tượng sẽ tự động bị xóa khi bộ đếm đó về 0. Tuy nhiên, nó sẽ không xóa các đối tượng được trỏ đến nhưng không thể truy cập được, dẫn đến rò rỉ bộ nhớ
Trăn 2. 0 khắc phục điều này bằng các chu kỳ định kỳ gọi trình thu gom rác để xóa các đối tượng không thể truy cập. Các chu kỳ sử dụng chi phí bổ sung nhưng giảm nguy cơ rò rỉ bộ nhớ. Kể từ đó, chi phí chung của các chu kỳ xóa đã giảm do tối ưu hóa
Bài tập tăng cường
Trăn 2. 0 cũng thêm hỗ trợ cho các toán tử gán tăng cường thực hiện thao tác trên biến đã chọn và trả về biến đó. Ví dụ:
import codecs
unistr = u'\u0660\u2000ab ...'
[UTF8_encode, UTF8_decode,
UTF8_streamreader, UTF8_streamwriter] = codecs.lookup['UTF-8']
output = UTF8_streamwriter[ open[ '/tmp/output', 'wb'] ]
output.write[ unistr ]
output.close[]
6 thêm 1 vào giá trị của import codecs
unistr = u'\u0660\u2000ab ...'
[UTF8_encode, UTF8_decode,
UTF8_streamreader, UTF8_streamwriter] = codecs.lookup['UTF-8']
output = UTF8_streamwriter[ open[ '/tmp/output', 'wb'] ]
output.write[ unistr ]
output.close[]
7. Nó là một phiên bản ngắn hơn của tuyên bố import codecs
unistr = u'\u0660\u2000ab ...'
[UTF8_encode, UTF8_decode,
UTF8_streamreader, UTF8_streamwriter] = codecs.lookup['UTF-8']
output = UTF8_streamwriter[ open[ '/tmp/output', 'wb'] ]
output.write[ unistr ]
output.close[]
8Danh sách đầy đủ các toán tử gán được hỗ trợ là
import codecs
unistr = u'\u0660\u2000ab ...'
[UTF8_encode, UTF8_decode,
UTF8_streamreader, UTF8_streamwriter] = codecs.lookup['UTF-8']
output = UTF8_streamwriter[ open[ '/tmp/output', 'wb'] ]
output.write[ unistr ]
output.close[]
9, import codecs
unistr = u'\u0660\u2000ab ...'
[UTF8_encode, UTF8_decode,
UTF8_streamreader, UTF8_streamwriter] = codecs.lookup['UTF-8']
output = UTF8_streamwriter[ open[ '/tmp/output', 'wb'] ]
output.write[ unistr ]
output.close[]
0, import codecs
unistr = u'\u0660\u2000ab ...'
[UTF8_encode, UTF8_decode,
UTF8_streamreader, UTF8_streamwriter] = codecs.lookup['UTF-8']
output = UTF8_streamwriter[ open[ '/tmp/output', 'wb'] ]
output.write[ unistr ]
output.close[]
1, import codecs
unistr = u'\u0660\u2000ab ...'
[UTF8_encode, UTF8_decode,
UTF8_streamreader, UTF8_streamwriter] = codecs.lookup['UTF-8']
output = UTF8_streamwriter[ open[ '/tmp/output', 'wb'] ]
output.write[ unistr ]
output.close[]
2, import codecs
unistr = u'\u0660\u2000ab ...'
[UTF8_encode, UTF8_decode,
UTF8_streamreader, UTF8_streamwriter] = codecs.lookup['UTF-8']
output = UTF8_streamwriter[ open[ '/tmp/output', 'wb'] ]
output.write[ unistr ]
output.close[]
3, import codecs
unistr = u'\u0660\u2000ab ...'
[UTF8_encode, UTF8_decode,
UTF8_streamreader, UTF8_streamwriter] = codecs.lookup['UTF-8']
output = UTF8_streamwriter[ open[ '/tmp/output', 'wb'] ]
output.write[ unistr ]
output.close[]
4, import codecs
unistr = u'\u0660\u2000ab ...'
[UTF8_encode, UTF8_decode,
UTF8_streamreader, UTF8_streamwriter] = codecs.lookup['UTF-8']
output = UTF8_streamwriter[ open[ '/tmp/output', 'wb'] ]
output.write[ unistr ]
output.close[]
5, import codecs
unistr = u'\u0660\u2000ab ...'
[UTF8_encode, UTF8_decode,
UTF8_streamreader, UTF8_streamwriter] = codecs.lookup['UTF-8']
output = UTF8_streamwriter[ open[ '/tmp/output', 'wb'] ]
output.write[ unistr ]
output.close[]
6, import codecs
unistr = u'\u0660\u2000ab ...'
[UTF8_encode, UTF8_decode,
UTF8_streamreader, UTF8_streamwriter] = codecs.lookup['UTF-8']
output = UTF8_streamwriter[ open[ '/tmp/output', 'wb'] ]
output.write[ unistr ]
output.close[]
7, import codecs
unistr = u'\u0660\u2000ab ...'
[UTF8_encode, UTF8_decode,
UTF8_streamreader, UTF8_streamwriter] = codecs.lookup['UTF-8']
output = UTF8_streamwriter[ open[ '/tmp/output', 'wb'] ]
output.write[ unistr ]
output.close[]
8 và import codecs
unistr = u'\u0660\u2000ab ...'
[UTF8_encode, UTF8_decode,
UTF8_streamreader, UTF8_streamwriter] = codecs.lookup['UTF-8']
output = UTF8_streamwriter[ open[ '/tmp/output', 'wb'] ]
output.write[ unistr ]
output.close[]
9