stanford-oval/wikipedia huggingface dataset:
Python (ngôn ngữ lập trình)
Lịch sử

Python đã được Guido van Rossum tạo ra vào những năm 1980 tại Trung tâm Toán học – Tin học (Centrum Wiskunde & Informatica, CWI) ở Hà Lan như là một ngôn ngữ kế tục ngôn ngữ ABC – một ngôn ngữ được lấy cảm hứng từ SETL, có khả năng xử lí ngoại lệ và giao tiếp với hệ điều hành Amoeba. Nó bắt đầu được triển khai vào tháng 12 năm 1989. Van Rossum đã tự mình gánh vác trách nhiệm cho dự án, với vai trò là nhà phát triển chính, cho đến ngày 12 tháng 7 năm 2018, khi ông thông báo rằng ông sẽ rời bỏ trách nhiệm của ông và cả danh hiệu "Nhà độc tài nhân từ cho cuộc sống" của Python, một danh hiệu mà cộng đồng Python đã trao tặng cho ông vì sự tận tụy lâu dài của ông với vai trò là người ra quyết định chính cho dự án. Vào tháng 1 năm 2019, các nhà phát triển phần lõi Python đã bầu ra một "Hội đồng chèo lái" gồm năm thành viên để dẫn dắt dự án.
Python 2.0 được ra mắt vào ngày 16 tháng 10 năm 2000, với nhiều tính năng mới mẻ, bao gồm một bộ dọn rác phát hiện theo chu kỳ và khả năng hỗ trợ Unicode.
Python 3.0 được ra mắt vào ngày mùng 3 tháng 12 năm 2008. Đây là một phiên bản lớn của Python không tương thích ngược hoàn toàn. Nhiều tính năng lớn của nó đã được chuyển mã ngược (backport) về loạt phiên bản Python 2.6.x và 2.7.x. Các bản phát hành của Python 3 có đi kèm với công cụ 2to3, có tác dụng tự động hoá việc dịch mã Python 2 sang Python 3.
Python 3.9.2 và 3.8.8 được xúc tiến vì tất cả các phiên bản trước của Python (bao gồm cả 2.7) gặp một số vấn đề bảo mật, có thể dẫn đến thực thị mã từ xa và "đầu độc" bộ nhớ đệm.
Trong năm 2022, Python 3.10.4 và 3.9.12 được xúc tiến cùng với 3.8.13 và 3.7.13, nguyên nhân là do một vài vấn đề về bảo mật. Khi Python 3.9.13 được phát hành vào tháng Năm năm 2022, loạt phiên bản 3.9 (cùng với loạt 3.8 và 3.7) được thông báo rằng sẽ chỉ nhận được các bản vá bảo mật trong tương lai. Vào ngày 7 tháng Chín năm 2022, bốn bản cập nhật mới được phát hành do có khả năng xảy ra một cuộc tấn công từ chối dịch vụ: 3.10.7, 3.9.14, 3.8.14 và 3.7.14.
Tính đến  tháng 11 năm 2024, Python 3.13 là bản phát hành ổn định mới nhất. Một số thay đổi đáng chú ý từ bản 3.12 bao gồm các thay đổi về ngôn ngữ và thư viện chuẩn.
Cú pháp

Python là một ngôn ngữ dễ đọc, dễ hiểu. Định dạng của nó rất gọn gàng về mặt trực quan, và nó thường sử dụng các từ khoá tiếng Anh trong khi các ngôn ngữ khác lại sử dụng các dấu câu. Khác với nhiều ngôn ngữ khác, nó không sử dụng các dấu ngoặc nhọn để giới hạn các khối lệnh, và dấu chấm phẩy cuối câu lệnh rất ít khi được sử dụng dù không bị cấm. Nó có ít ngoại lệ cú pháp và trường hợp đặc biệt hơn C và Pascal.
Cú pháp > Thụt lề

Python sử dụng thụt lề bằng khoảng trắng hoặc ký tự tab thay vì dùng ngoặc nhọn hay các từ khoá để giới hạn khối lệnh. Lề thường được thụt vào sau một câu lệnh và thụt ra để đánh dấu kết thúc khối lệnh hiện tại. Cho nên, cấu trúc trực quan của chương trình sẽ thể hiện một cách chính xác cấu trúc ngữ nghĩa của chương trình đó. Tính năng này thỉnh thoảng cũng được gọi là "quy tắc việt vị", một quy tắc cũng xuất hiện ở một số ngôn ngữ; nhưng trong phần lớn ngôn ngữ thì thụt lề không phụ thuộc vào cú pháp. Cỡ thụt lề được khuyến cáo là bốn dấu cách.
Cú pháp > Câu lệnh và luồng điều khiển

Một số câu lệnh trong Python gồm có:
Câu lệnh gán, sử dụng một dấu bằng =.
Câu lệnh if: thực thi một khối lệnh nếu thoả mãn điều kiện, sử dụng cùng với else và elif (viết tắt của else-if).
Câu lệnh for: lặp qua một đối tượng lặp được, gán mỗi phần tử và một biến cục bộ để sử dụng trong khối lệnh của vòng lặp.
Câu lệnh while: thực thi một khối lệnh chừng nào điều kiện còn đúng.
Câu lệnh try: cho phép bắt ngoại lệ được nâng lên (raise) trong khối lệnh và dùng vế except để xử lý; câu lệnh cũng đảm bảo rằng phần mã dọn dẹp trong khối finally sẽ được chạy dù có lỗi hay không.
Câu lệnh raise: được dùng để nâng một ngoại lệ hoặc nâng lại một ngoại lệ đã được bắt từ trước.
Câu lệnh class: thực thi một khối lệnh và gắn không gian tên cục bộ của nó vào một lớp, để dùng trong lập trình hướng đối tượng.
Câu lệnh def: định nghĩa một hàm hoặc phương thức.
Câu lệnh with: bao bọc một khối lệnh bằng một bộ quản lí ngữ cảnh (context manager) (ví dụ như khoá luồng lại trước khi chạy mã rồi mở khoá, hoặc mở một tệp rồi đóng tệp lại), cho phép các hành vi kiểu RAII (sự đạt được tài nguyên là sự khởi tạo) và thay thể cho các câu lệnh try/finally thường thấy.
Câu lệnh break: thoát ra khỏi vòng lặp.
Câu lệnh continue: bỏ qua lần lặp này và tiếp tục với mục kế tiếp.
Câu lệnh del: loại bỏ một biến, tức là tham chiếu từ tên đến giá trị sẽ bị xoá và cố gắng sử dụng biến đó sẽ gây lỗi. Một biến đã bị xoá có thể được gán lại.
Câu lệnh pass: đóng vai trò như là một dạng NOP. Câu lệnh này được dùng để tạo các khối lệnh rỗng.
Câu lệnh assert: được dùng trong khi gỡ lỗi để kiểm tra điều kiện nên đúng.
Câu lệnh yield: trả lại giá trị từ một hàm bộ sinh; bản thân yield cũng là một toán tử. Dạng này được dùng để triển khai các đồng thường trình.
Câu lệnh return: trả lại một giá trị từ một hàm hay phương thức.
Câu lệnh import: được dùng để nhập các mô đun chứa các hàm và biến được sử dụng trong chương trình hiện tại.
Câu lệnh gán (=) hoạt động bằng cách liên kết một tên dưới dạng một tham chiếu với một đối tượng được cấp phát động riêng lẻ. Các biến có thể được dùng lại bất cứ lúc nào với bất cứ đối tượng nào. Trong Python, một tên biến chỉ giữ tham chiếu một cách chung chung và không có kiểu dữ liệu cố định đi kèm. Tuy nhiên, tại một thời điểm nhất định, một biến sẽ tham chiếu đến một vài đối tượng có kiểu. Nó được gọi là kiểu động, ngược lại với các ngôn ngữ lập trình kiểu tĩnh với mỗi biến chỉ có thể chứa giá trị của một kiểu nhất định.
Cú pháp > Phương thức

Phương thức của đối tượng là một hàm đi kèm với lớp của đối tượng đó. Cú pháp hiện_thể.phương_thức(đối số), đối với các hàm và phương thức bình thường, thức chất là dạng cú pháp đặc biệt của Lớp.phương_thức(hiện_thể, đối số). Các phương thức trong Python có một tham số self được dùng để truy cập dữ liệu của hiện thể (instance), ngược lại với biến bản thân (self haythis) trong một số ngôn ngữ lập trình hướng đối tượng khác (C++, Java, Objective-C, hay Ruby). Ngoại trừ điều này, Python cũng cung cấp các phương thức gạch dưới (do tên của chúng bắt đầu và kết thúc bằng hai dấu gạch dưới), cho phép các lớp do người dùng định nghĩa thay đổi cách các lớp này được xử lý bởi các thao tác của Python chẳng hạn như lấy chiều dài, so sánh, tính toán số học, chuyển đổi kiểu...
Cú pháp > Phép tính số học

Python có các kí hiệu thường dùng cho các toán tử số học (+, -, *, /), toán tử chia sàn // và toán tử chia lấy dư % (số dư có thể âm,  chẳng hạn như 4 % -3 == -2). Nó cũng có toán tử ** cho phép luỹ thừa, chẳng hạn như 5**3 == 125 và 9**0.5 == 3.0, và toán tử nhân ma trận @. Các toán tử này hoạt động giống như trong toán học truyền thống, với cùng thứ tự tính toán, toán tử trung tố (+ và - cũng có thể làm toán tử một ngôi để biểu diễn số dương và số âm một cách tương ứng).
Phép chia giữa các số nguyên tạo ra kết quả là số phẩy động. Hành vi của phép chia đã thay đổi đáng kể theo thời gian:
Python hiện tại (kể từ 3.0) thay đổi / thành phép chia số phẩy động, ví dụ: 5/2 == 2.5.
Python 2.2 đã thay đổi phép chia số nguyên để nó làm tròn về phía âm vô cực, ví dụ 7/3 == 2 và -7/3 == -3. Toán tử chia sàn // đã được giới thiệu. Cho nên 7//3 == 2, -7//3 == -3, 7.5//3 == 2.0 và -7.5//3 == -3.0. Thêm from __future__ import division sẽ làm cho một mô đun sử dụng quy tắc chia của Python 3.0.
Python 2.1 về trước sử dụng hành vi chia kiểu C. Toán tử / là phép chia nguyên nếu cả hai toán hạng là số nguyên, nếu không thì là phép chia số phẩy động. Phép chia nguyên làm tròn về 0, ví dụ 7/3 == 2 và -7/3 == -2.
Trong thuật ngữ Python, / là phép chia đúng (gọi tắt là phép chia), và // là phép chia sàn. Toán tử / trước phiên bản 3.0 là phép chia cổ điển.
Việc làm tròn về phía âm vô cực, dù khác biệt so với những ngôn ngữ khác, đem lại sự chắc chắn. Ví dụ, phương trình (a + b)//b == a//b + 1 là luôn đúng. Còn phương trình b*(a//b) + a%b == a thì hợp lệ với cả giá trị a dương và âm. Tuy nhiên, duy trì tính hợp lệ của phương trình này cũng đồng nghĩa răng trong khi kết quả của a%b là, đúng như mong đợi, nằm trong nửa khoảng mở [0, b), với b là một số nguyên dương, nó cũng cần phải nằm trong khoảng (b, 0] khi b âm.
Python cung cấp một hàm round để làm tròn một số phẩy động thành số nguyên gần nhất. Để gỡ hoà (với những số có chữ số cuối là 5), Python 3 sử dụng làm tròn thành số chẵn: round(1.5) và round(2.5) đều là 2. Các phiên bản trước 3 làm tròn xa số không: round(0.5) là 1.0, round(-0.5) là −1.0.
Python cho phép sử dụng các biểu thức luận lý với nhiều quan hệ băng nhau theo một cách đồng nhất với cách dùng chung trong toán học. Thí dụ, biểu thức a < b < c kiểm tra xem a có nhỏ hơn b và b có nhỏ hơn c hay không. Các ngôn ngữ dựa trên C sẽ hiểu biểu thức trên khác đi: trong C, biểu thức trên sẽ đánh giá a < b trước tiên, cho ra kết quả 0 hoặc 1, rồi kết quả đó mới được so sánh với c.
Python sử dụng số học có độ chính xác tuỳ ý cho tất cả các thao tác với số nguyên. Kiểu/Lớp Decimal trong mô đun decimal cung cấp số dấu phẩy động thập phân với một độ chính xác tuỳ ý được định trước và một vài chế độ làm tròn. Lớp Fraction trong mô đun fractions cung cấp độ chính xác tuỳ ý cho số hữu tỉ.
Nhờ thư viện toán học rộng lớn của Python và thư viện bên thứ ba NumPy với nhiều tính năng hơn nữa, Python thường được dùng như một ngôn ngữ kịch bản để giải quyết các vấn đề chẳng hạn như thao tác và xử lí dữ liệu số.
Cú pháp > Chú thích

# dòng chú thích
Cú pháp > In giá trị

# Từ Python 3
print((7 + 8) / 2.0)
print((2 + 3j) * (4 - 6j))
Nội suy xâu (string interpolation)
print("Hello {}!".format("world"))
print("a = {.2f} và b = {.2f}".format(a,b))
Cú pháp > Cấu trúc rẽ nhánh

Dạng 1:if biểu_thức_điều_kiện:
    # lệnh...
Dạng 2:if biểu_thức_điều_kiện:
    # lệnh...
else:
    # lệnh...
Dạng 3:if biểu_thức_điều_kiện_1:
    # lệnh... (được thực hiện nếu biểu_thức_điều_kiện_1 là đúng/true)
elif biểu_thức_điều_kiện_2:
    # lệnh... (được thực hiện nếu biểu_thức_điều_kiện_1 là sai/false, nhưng biểu_thức_điều_kiện_2 là đúng/true)
else:
    # lệnh... (được thực hiện nếu tất cả các biểu thức điều kiện đi kèm if và elif đều sai)
Khớp theo mẫu, được thêm vào từ bản 3.10.0:match biến_1:
    case điều_kiện_1:
        #được thực hiện nếu biến_1 = điều_kiện_1
    case điều_kiện_2:
        #được thực hiện nếu biến_1 = điều_kiện_2
Cú pháp > Cấu trúc lặp

while biểu_thức_đúng:
    # lệnh...
for phần_tử in dãy:
    # lệnh...
L = ["Hà Nội", "Hải Phòng", "TP Hồ Chí Minh"]
for thành_phố in L:
    print(thành_phố)

for i in range(10):
    print(i)
Cú pháp > Hàm

def tên_hàm (tham_biến_1, tham_biến_2, tham_biến_n):
    # lệnh...
    return giá_trị_hàm
Hàm với tham số mặc định:
def luỹ_thừa(x, n=2):
   """Lũy thừa với số mũ mặc định là 2"""
   return x**n

print(luỹ_thừa(3))   # 9
print(luỹ_thừa(2,3)) # 8
Cú pháp > Lớp

class Lớp:
    #...

class LớpCon(Lớp):
    """LớpCon kế thừa lớp Lớp"""
    x = 3  # biến thành viên của lớp
    #
    def phương_thức(self, tham_biến):
        #...

# khởi tạo
a = LớpCon()
print(a.x)
print(a.phương_thức(m))  # m là giá trị gán cho tham biến
Cú pháp > Xử lý ngoại lệ

try:
    câu_lệnh
except Loại_Lỗi:
    thông báo lỗi
Thư viện

Bộ thư viện chuẩn rộng lớn của Python – một trong những điểm mạnh lớn nhất của Python – cung cấp các công cụ phù hợp cho nhiều công việc khác nhau. Với các ứng dụng giao tiếp với Internet, nhiều giao thức và định dạng chuẩn chẳng hạn như MIME and HTTP được hỗ trợ. Nó cũng có chứa các mô đun đành cho việc tạo lập giao diện người dùng đồ hoạ, kết nối với cơ sở dữ liệu quan hệ, sinh số giả ngẫu nhiên, tính toán với số thập phân có độ chính xác tuỳ ý, thao tác với biểu thức chính quy và kiểm thử đơn vị.
Một số phần của thư viện chuẩn nằm trong đặc tả (ví dụ, Giao diện Cổng vào Máy chủ Web (Web Server Gateway Interface hay WSGI) triển khai wsgiref theo PEP 333), nhưng phần lớn mô đun thì không. Chúng được xác định dựa vào mã, tài liệu bên trong và bộ kiểm thử (test suite) của chúng. Tuy nhiên, vì phần lớn thư viện chuẩn là mã Python đa nền tảng, chỉ một vài mô đun cần được chỉnh sửa hoặc viết lại cho các bản triển khai khác nhau.
Tính đến  tháng 9 năm 2021, Python Package Index (PyPI), kho chính thức dành cho các phần mềm Python bên thứ ba, có chứa hơn 329.000 gói với nhiều chức năng đa dạng và phong phú, bao gồm:
Tự động hoá
Phân tích dữ liệu
Cơ sở dữ liệu
Tài liệu
Giao diện người dùng đồ hoạ
Xử lý hình ảnh
Học máy
Ứng dụng di động
Đa phương tiện
Mạng máy tính
Khoa học tính toán
Quản trị hệ thống
Kiểm thử tự động
Xử lí văn bản
Bộ khung mạng
Thu thập web
Môi trường phát triển

Phần lớn trình hiện thực Python (kể cả CPython) có chứa một trình lặp đọc–tính–in (REPL), cho phép chúng hoạt động như là một trình thông dịch dòng lệnh mà người dùng sẽ lần lượt nhập các câu lệnh và nhận kết quả ngay lập tức.
Python đì kèm với một môi trường phát triển tích hợp (IDE) được gọi là IDLE, phù hợp với người mới bắt đầu.
Các hệ vỏ khác, bao gồm IDLE và IPython, có thêm khả năng tự hoàn thiện, khôi phục trạng thái phiên, và tô sáng cú pháp.
Ngoài các môi trường phát triển tích hợp trên máy để bàn, còn có những IDE chạy trên trình duyệt web: SageMath (dành cho việc phát triển các chương trình Python liên quan đền toán học và khoa học); PythonAnywhere, một IDE kiêm môi trường chủ nhà; và Canopy IDE, một IDE Python thương mại tập trung vào khoa học tính toán.
Các bản triển khai > Bản triển khai tham khảo

CPython là bản triển khai tham khảo của Python. Nó được viết bằng C, đáp ứng tiêu chuẩn C89 vời một vài tính năng C99 chọn lọc (từ khi các phiên bản C mới hơn ra mắt, nó được coi là lỗi thời;  CPython có chứa phần mở rộng C của riêng nó, nhưng các phần mở rộng bên thứ ba không bị giới hạn bởi các phiên bản C cũ hơn, có thể được cài đặt với C11 hoặc C++). Nó biên dịch các chương trình Python thành một dạng mã byte trung gian, sau đó thực thi mã byte trên máy ảo của nó. CPython được phân phối cùng với một thư viện chuẩn rộng lớn được viết bằng C và Python bản địa (native). Nó có sẵn trên nhiều nền tảng, bao gồm Windows (từ Python 3.9, trình cài đặt Python sẽ không chạy một cách có chủ ý trên Windows 7 và 8; Windows XP đã từng được hỗ trợ cho đến Python 3.5) và phần lớn hệ điều hành tương tự Unix hiện đại, bao gồm macOS (và máy Mac Apple M1, kể từ Python 3.9.1, với trình cài đặt thử nghiệm) và hỗ trợ không chính thức cho chẳng hạn như VMS. Tính khả chuyển nền tảng là một trong những ưu tiên sớm nhất của nó, trong khung thời gian Python 1 và Python 2, khi ngay cả OS/2 và Solaris cũng được hỗ trợ; song nhiều hệ điều hành cũng không còn được hỗ trợ nữa.
Các bản triển khai > Các bản triển khai khác

PyPy là một trình thông dịch nhanh, tuân thủ cú pháp của Python 2.7 và 3.6. Trình biên dịch tức thời của nó mang đến tốc độ vượt trội so với CPython nhưng một vài thư viện được viết bằng C lại không thể được sử dụng cùng với nó.
Stackless Python là một phân nhánh (fork) đáng chú ý của CPython có cài đặt vi luồng; nó không sử dụng ngăn xếp lời gọi theo cùng một cách với CPython, vậy nên nó hỗ trợ các chương trình đồng thời một cách ồ ạt. PyPy cũng có một phiên bản không có ngăn xếp.
MicroPython và CircuitPython là các biến thể Python 3 được tối ưu hoá cho vi điều khiển, bao gồm Lego Mindstorms EV3.
Pyston là một biến thể của Python sử dụng biên dịch tức thời để tăng tốc độ thực thi các chương trình Python.
Cinder là một phân nhánh hướng hiệu năng của CPython 3.8 có chứa một số tối ưu hoá bao gồm đệm bộ nhớ mã byte trong dòng, đánh giá các chương trình con một cách tham vọng, một trình biên dịch tức thời "mỗi lúc một phương thức" và một trình biên dịch mã byte thử nghiệm.
Các bản triển khai > Trình biên dịch chéo sang ngôn ngữ khác

Có một số trình biên dịch sang những ngôn ngữ đối tượng bậc cao khác từ ngôn ngữ mã nguồn là Python, một tập con giới hạn của Python hoặc một ngôn ngữ tương tự Python:
Brython, Transcrypt và Pyjs (phát hành lần cuối năm 2012) biên dịch Python sang JavaScript.
Codon biên dịch một tập con Python định kiểu tĩnh sang mã máy (thông qua LLVM) và hỗ trợ đa luồng cho hệ thống bản địa.
Cython biên dịch (một tập cha của) Python 2.7 sang C. Phần mã kết quả cũng dùng được với Python thông qua các lệnh gọi API mức C trực tiếp vào trình thông dịch Python.
Nuitka biên dịch Python sang C.
Numba sử dụng LLVM để biên dịch một tập con của Python sang mã máy.
Pythran biên dịch một tập con của Python 3 sang C++.
Pyrex (bản mới nhất năm 2010) và Shed Skin (bản mới nhất năm 2013) biên dịch lần lượt sang C và C++.
Google's Grumpy (bản mới nhất năm 2017) phiên dịch Python 2 to Go.
IronPython  cho phép chạy các chương trình Python 2.7 trên .NET Common Language Runtime.
Jython biên dịch Python 2.7 sang mã byte Java, cho phép sử dụng các thư viện Java từ một chương trình Python.
RPython có thể được biên dịch sang C, và được dùng để xây dựng trình thông dịch PyPy của Python.
Phát triển

Sự phát triển của Python được chỉ đạo phần lớn là thông qua quy trình Đề nghị Cải tiến Python (Python Enhancement Proposal, hay PEP), cơ chế chủ yếu để đề nghị các tính năng lớn mới, thu thập ý kiến của cộng đồng về các vấn đề và ghi chép lại các quyết định về thiết kế của Python. Phong cách viết mã của Python nằm trong PEP 8. Các PEP xuất sắc sẽ được xem lại và bình luận bởi cộng đồng Python và hội đồng chèo lái.
Sự cải tiến ngôn ngữ tương ứng với sự phát triển của bản triển khai tham khảo CPython. Danh sách thư python-dev là diễn đàn chính về sự phát triển của ngôn ngữ này. Các vấn đề cụ thể được thảo luận trong hệ theo dõi lỗi Roundup được tổ chức trên bugs.python.org. Sự phát triển ban đầu chỉ xảy ra trên một kho mã nguồn tự làm chủ chạy Mercurial cho đến khi Python di chuyển mã nguồn sang Github vào tháng Một năm 2017.
Các bản phát hành công khai của CPython được chia thành ba loại, được phân biệt theo phần nào của số phiên bản được tăng lên:
Phiên bản không tương thích ngược: các mã nhiều khả năng sẽ không hoạt động được và cần phải được chuyển mã thủ công. Phần đầu tiên của số phiên bản được tăng lên. Các bản này ít khi được phát hành: phiên bản 3.0 đã được phát hành 8 năm trước bản 2.0. Theo ông Guido van Rossum, phiên bản 4.0 có lẽ sẽ không bao giờ được phát hành.
Bản phát hành lớn hay bản phát hành "tính năng": tương thích phần lớn với các phiên bản trước đó nhưng có thêm những tính năng mới. Phần thứ hai của số phiên bản được tăng lên. Bắt đầu từ Python 3.8, các bản phát hành được thông báo là sẽ xảy ra hằng năm. Mỗi phiên bản lớn sẽ được hỗ trợ bằng sửa lỗi trong vòng vài năm sau khi nó được phát hành.
Phiên bản sửa lỗi: không có tính năng mới, xảy ra mỗi ba tháng và được phát hành khi số lượng lỗi được sửa ngược dòng đủ lớn kể từ bản phát hành cuối. Các lỗ hổng cũng sẽ được vá trong những phiên bản này. Phần thứ ba và phần cuối cùng của số phiên bản được tăng lên.
Nhiều phiên bản alpha, beta và phiên bản ứng cử cũng được phát hành để xem trước và kiểm thử trước bản phát hành cuối cùng. Mặc dù có một lịch trình sơ bộ cho mỗi bản phát hành, chúng thường được lùi lại nếu mã vẫn chưa sẵn sàng. Đội ngũ phát triển Python giám sát tình trạng của mã bằng các chạy tập kiểm thử đơn vị lớn trong quá trình phát triển.
Hội thảo học thuật lớn nhất của Python là PyCon. Ngoài ra, cũng có các chương trình hướng dẫn Python đặc biệt khác, chẳng hạn như Pyladies.
Python 3.10 không khuyên dùng wstr (sẽ bị loại bỏ từ Python 3.12; nghĩa là các phần mở rộng Python cần được chỉnh sửa khi đó), đông thời thêm tính năng khớp theo mẫu (pattern matching) vào ngôn ngữ.
Sự phổ biến

Kể từ năm 2003, Python luôn được xếp vào một trong số mười ngôn ngữ lập trình phổ biến nhất trong Chỉ số Cộng đồng Lập trình TIOBE, nơi mà tính đến  tháng 10 năm 2021, Python là ngôn ngữ phổ biến nhất (đứng trước Java và C). Nó từng được chọn là Ngôn ngữ Lập trình của Năm (vì "có đánh giá tăng cao nhất trong năm") vào các năm 2007, 2010, 2018, và 2020 (chỉ Python là được bốn năm).
Một nghiên cứu thức nghiệm chỉ ra rằng các ngôn ngữ kịch bản, chẳng hạn như Python, cho năng suất cao hơn so với các ngôn ngữ thông thường, chẳng hạn như C và Java, đối với các vấn đề lập trình liên quan đến thao tác xâu và tìm kiếm trong từ điển, đồng thời quả quyết rằng sự tiêu tốn bộ nhớ thường "tốt hơn Java và không quá tệ hơn so với C hay C++".
Các tổ chức lớn sử dụng Python gồm có Wikipedia, Google, Yahoo!, CERN, NASA, Facebook, Amazon, Instagram, Spotify và các tổ chức nhỏ hơn như ILM and ITA. Trang mạng tin tức xã hội Reddit cũng được viết phần lớn bằng Python.
Ảnh hưởng ngôn ngữ

Thiết kế và triết lý của Python đã ảnh hưởng đến nhiều ngôn ngữ lập trình khác:
CoffeeScript – một ngôn ngữ lập trình biên dịch chéo sang JavaScript – có cú pháp lấy cảm hứng từ Python.
ECMAScript/JavaScript mượn biến lặp (iterator) và bộ sinh từ Python.
GDScript, một ngôn ngữ kịch bản rất giống Python, được tích hợp vào bộ máy trò chơi Godot.
Go được thiết kế nhằm "tăng tốc độ làm việc trong một ngôn ngữ kiểu động giống như Python" và cả hai có cùng cú pháp cắt lát mảng.
Groovy được tạo ra với mong muốn đem triết lí thiết kế của Python vào Java.
Julia được thiết kế để "có thể sử dụng được vào các mục đích chung giống như Python vậy".
Mojo, một tập cha của Python, cố gắng tương thích với cú pháp và hệ sinh thái của Python, và có thể chạy nhanh hơn Python lên đến 35.000 lần.
Nim cũng có thụt lề và cú pháp tương đồng.
Matsumoto Yukihiro, tác giả của ngôn ngữ Ruby từng cho biết: "Tôi muốn một ngôn ngữ kịch bản mạnh mẽ hơn Perl và hướng đối tượng nhiều hơn Python. Đó là lí do tôi quyết định thiết kế ngôn ngữ cho riêng mình."
Cấp bậc kiểu tiêu chuẩn trong Python 3
Được vận hành bởi Python
Fray Bentos

Bài này viết về thành phố cảng tại Uruguay. Đối với thương hiệu thực phẩm đóng hộp, xem Fray Bentos (thương hiệu thực phẩm). Đối với khác, xem Fray Bentos (định hướng).
| Fray Bentos |
| --- | --- |
—  Thủ phủ tỉnh  —
 

Fray Bentos
Tọa độ: 33°08′0″N 58°18′0″T﻿ / ﻿33,13333°N 58,3°T﻿ / -33.13333; -58.30000 
Quốc gia:  Uruguay
Tỉnh: Río Negro
Thành lập: 1859
Dân số (2011)
 • Tổng cộng: 24.406
 • Demonym: fraybentino
Mã bưu điện: 65000

 Di sản thế giới UNESCO
Tên chính thức: Cảnh quan công nghiệp Fray Bentos
Tiêu chuẩn: Văn hóa: (ii), (iv)
Tham khảo: 1464
Công nhận: 2015 (Kỳ họp 39)
Diện tích: 273,8 ha (677 mẫu Anh)
Vùng đệm: 2.127,7 ha (5.258 mẫu Anh)
Website: https://www.rionegro.gub.uy/paisaje-industrial-fray-bentos/
 
Fray Bentos (phát âm tiếng Tây Ban Nha: [fɾai̯ ˈbentos]) là một thành phố cảng bên bờ sông Uruguay và là thủ phủ của tỉnh Río Negro, tây nam Urugoay. Đây là một trong những cảng quan trọng nhất của quốc gia. Thành phố là nơi có khuôn viên Đại học Công nghệ, bên cạnh khu phức hợp công nghiệp Anglo del Uruguay, một di sản thế giới được UNESCO công nhận từ năm 2015. Ngoài ra là một trong những nhà máy bột giấy lớn nhất thế giới nằm gần Fray Bentos và cầu Libertador General San Martín, là trung tâm tranh chấp chính trị lớn nhất giữa Uruguay và Argentina trong thế kỷ 21.
Vị trí

Nó gần biên giới với Argentina và nằm về phía Bắc Buenos Aires khoảng 160 km và cách thủ đô Montevideo 309 km về phía đông nam thành phố.
Lịch sử

Thị trấn ban đầu được thành lập với tên gọi là "Villa Independencia" (Dinh thự Độc lập) theo Nghị định ngày 16 tháng 4 năm 1859.
Sau đó nó trở thành thủ phủ của tỉnh Río Negro vào ngày 7 tháng 7 năm 1860 theo Đạo luật số 1475. Đến ngày 16 tháng 7 năm 1900, nó được nâng lên trở thành một "thành phố" (Ciudad) theo Đạo luật số 2656. Tên của nó có nghĩa là "Friar Benedict", có nguồn gốc từ một linh mục sống ẩn dật.
Trong lịch sử, thành phố có ngành công nghiệp chính là chiết xuất thịt. Một nhà máy công nghiệp thuộc sở hữu của Công ty Chiết xuất thịt Liebig được thành lập vào năm 1863 trước khi đóng cửa vào năm 1979, tức là hoạt động 117 năm. Một bảo tàng lịch sử địa phương đã thiết lập tại nhà máy này vào tháng 3 năm 2005.