% là gì trong python

Python là một ngôn ngữ lập trình bậc cao cho các mục đích lập trình đa năng, do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991. Python được thiết kế với ưu điểm mạnh là dễ đọc, dễ học và dễ nhớ. Python là ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình và là ngôn ngữ lập trình dễ học; được dùng rộng rãi trong phát triển trí tuệ nhân tạo. Cấu trúc của Python còn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu.[25] Vào tháng 7 năm 2018, van Rossum đã từ chức lãnh đạo trong cộng đồng ngôn ngữ Python sau 30 năm làm việc.[26][27]

Python
% là gì trong python
Cấp bậc kiểu tiêu chuẩn trong Python 3

Python sử dụng định kiểu vịt và có các đối tượng có kiểu nhưng tên biến thì không có kiểu. Giới hạn về kiểu không được kiểm tra trong lúc biên dịch; thay vào đó. các thao tác lên một đối tượng có thể thất bại, chỉ ra rằng đối tượng đó không thuộc vào kiểu dữ liệu phù hợp. Tuy là định kiểu động, Python cũng định kiểu mạnh khi không cho phép các thao tác mà không được định nghĩa rõ ràng (chẳng hạn như cộng một số vào một xâu) thay vì lặng lẽ cố gắng diễn giải thao tác đó.

Python cho phép các lệp trình định nghĩa các kiểu của riêng họ bằng cách sử dụng lớp, thường được dùng trong lập trình hướng đối tượng. Các hiện thể của một lớp thường được tạo ra bằng cách gọi lớp đó (chẳng hạn như SpamClass() hay EggsClass()), các lớp lại là hiện thể của siêu lớp type (bản thân nó cũng là một hiện thể của chính có), cho phép siêu lập trình và phản xạ.

Trước phiên bản 3.0, Python có hai loại lớp là kiểu cũ và kiểu mới.[80] Cú pháp của cả hai kiểu đều giống nhau. Sự khác biệt nằm ở chỗ lớp đó có kế thừa từ lớp object một cách trực tiếp hoặc gián tiếp hay không (tất cả các lớp kiểu mới đều kế thừa từ object và là hiện thể của type). Từ phiên bản Python2.2 trở đi, cả hai loại lớp đều có thể được sử dụng. Lớp kiểu cũ đã bị loại bỏ trong Python3.0.

Kế hoạch dài hạn là hỗ trợ định kiểu dần dần[81] và từ Python3.5, cú pháp của ngôn ngữ này cho phép chỉ rõ các kiểu tĩnh nhưng chúng lại không được kiểm tra trong bản thực hiện mặc định, CPython. Một trình kiểm tra kiểu tĩnh đang trong quá trình thử nghiệm và tuỳ chọn tên là mypy có hỗ trợ kiểm tra kiểu trong thời gian biên dịch.[82]

Tóm tắt các kiểu dữ liệu có sẵn trong Python 3 Kiểu Thay đổi được Mô tả Ví dụ cú pháp bool không Kiểu dữ liệu luận lý TrueFalse bytearray có Chuỗi các byte nối tiếp bytearray(b'Some ASCII')bytearray(b"Some ASCII")bytearray([119, 105, 107, 105]) bytes không Chuỗi các byte nối tiếp b'Some ASCII'b"Some ASCII"bytes([119, 105, 107, 105]) complex không Số phức với phần thực và phần ảo 3+2.7j3 + 2.7j dict có Mảng liên kết (hay từ điển) các cặp khoá và giá trị; có thể chứa lẫn lộn nhiều kiểu (khoá và giá trị), khoá phải là loại băm được {'key1': 1.0, 3: False}{} ellipsisa không Một kiểu giữ chỗ chấm lửng được dùng như một chỉ số trong một mảng NumPy ...Ellipsis float không Số phẩy động độ chính xác đôi. Độ chính xác phụ thuộc vào từng máy nhưng trên thực tế thì nó thường được triển khai là một số IEEE 754 64-bit với độ chính xác là 53 bit.[83] 1.33333 frozenset không Tập hợp không được sắp xếp, không chứa các giá trị giống nhau; có thể chửa lẫn lộn nhiều kiểu, nếu băm được frozenset([4.0, 'string', True]) int không Số nguyên với độ lớn không giới hạn[84] 42 list có Danh sách, có thể chứa lẫn lộn nhiều kiểu [4.0, 'string', True][] NoneTypea không Một đối tượng đại diện cho sự không có mặt của dữ liệu, tương đương với null trong các ngôn ngữ khác None NotImplementedTypea không Một kiểu giữ chỗ có thể được trả lại từ toán tử nạp chồng để biểu thị kiểu toán hạng không được hỗ trợ. NotImplemented range không Một chuỗi các số thường được dùng để lặp với số lần biết trước trong vòng lặpfor[85] range(-1, 10)range(10, -5, -2) set có Tập hợp không được sắp xếp, không chứa các giá trị giống nhau; có thể chửa lẫn lộn nhiều kiểu, nếu băm được {4.0, 'string', True}set() str không Một xâu kí tự: chuỗi các điểm mã Unicode 'Wikipedia'"Wikipedia"
"""Trải dài trên nhiều dòng"""
tuple không Bộ; có thể chứa lẫn lộn nhiều kiểu (4.0, 'xâu', True)('single element',)()

^aKhông thể được truy cập trực tiếp bằng tên

Phép tính số họcSửa đổi

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 @ .[86] 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:[87]

  • 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.
  • Python2.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 Python3.0.
  • Python2.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-7/3 == -2.

Trong thuật ngữ Python, / là phép chia địch thực (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.[87]

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.[88]

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), Python3 sử dụng làm tròn thành số chẵn: round(1.5) và round(2.5) đều là 2.[89] 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.[90]

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.[91] 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.[92]

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.[93] Lớp Fraction trong mô-đun fractions cung cấp độ chính xác tuỳ ý cho số hữu tỉ.[94]

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ố.[95][96]

Chú thíchSửa đổi

# dòng chú thích

In giá trịSửa đổi

# 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ấu trúc rẽ nhánhSửa đổi

  • 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)

Cấu trúc lặpSửa đổi

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

HàmSửa đổi

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

LớpSửa đổi

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

Xử lý ngoại lệSửa đổi

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

Thư việnSửa đổi

Bộ thư viện chuẩn rộng lớn của Python, thường được cho là một trong những điểm mạnh lớn nhất của nó[97]. 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ỳ ý[98], 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 thức Cổng vào Máy chủ Web (Web Server Gateway Interface hay WSGI) triển khai wsgiref theo PEP 333[99]), 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 thực hiện khác nhau.

Tính đến tháng 9 năm 2021,[cập nhật] 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[100] 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ểnSửa đổi

Phần lớn trình hiện thực Python (kể cả CPython) có chứa một trình lặp đọctínhin (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.[101]

Các bản thực hiệnSửa đổi

Python được viết từ những ngôn ngữ khác, tạo ra những bản thực hiện khác nhau. Bản thực hiện Python chính có tên là CPython, được viết bằng C, và được phân phối kèm một thư viện chuẩn lớn được viết hỗn hợp bằng C và Python. CPython có thể chạy trên nhiều nền và khả chuyển trên nhiều nền khác. Dưới đây là các nền trên đó, CPython có thể chạy.

  • Các hệ điều hành họ Unix: AIX, Darwin, FreeBSD, Mac OS X, NetBSD, Linux, OpenBSD, Solaris...
  • Các hệ điều hành dành cho máy desktop: Amiga, AROS, BeOS, Mac OS 9, Microsoft Windows, OS/2, RISC OS.
  • Các hệ thống nhúng và các hệ đặc biệt: GP2X, Máy ảo Java, Nokia 770 Internet Tablet, Palm OS, PlayStation 2, PlayStation Portable, Psion, QNX, Sharp Zaurus, Symbian OS, Windows CE/Pocket PC, Xbox/XBMC, VxWorks.
  • Các hệ máy tính lớn và các hệ khác: AS/400, OS/390, Plan 9 from Bell Labs, VMS, z/OS.

Ngoài CPython, còn có nhiều bản thực hiện Python khác, chẳng hạn như Jython cho môi trường Java và IronPython cho môi trường .NET và Mono.

Tốc độ thực hiệnSửa đổi

Là một ngôn ngữ thông dịch, Python có tốc độ thực hiện chậm hơn nhiều lần so với các ngôn ngữ biên dịch như Fortran, C... Trong số các ngôn ngữ thông dịch, Python được đánh giá nhanh hơn Ruby và Tcl, nhưng chậm hơn Lua.[102]

Phát triểnSửa đổi

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.[103] Phong cách viết mã của Python nằm trong PEP8.[104] 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.[103]

Sự cải tiến ngôn ngữ tương ứng với sự phát triển của bản thực hiện 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.[105] 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.[106]

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.
  • 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.[107][108] 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.[109]
  • 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.[110]

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.

Sự phổ biếnSửa đổi

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[cập nhật], Python là ngôn ngữ phổ biến nhất (đứng trước Java và C).[83] 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[85]).

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++".[111]

Các tổ chức lớn sử dụng Python gồm có Wikipedia, Google[112], Yahoo![113], CERN, NASA, Facebook,[114] Amazon, Instagram,[115] Spotify[116] 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.[117]

Xem thêmSửa đổi

  • Zen of Python

Tham khảoSửa đổi

  1. ^ Python 3.10.0 is available (bằng tiếng Anh). 4 tháng 10 2021. Truy cập 5 tháng 10 2021. Kiểm tra giá trị ngày tháng trong: |access-date= và |date= (trợ giúp)
  2. ^ Python 3.9.8 and 3.11.0a2 are now availabl (bằng tiếng Anh). 5 tháng 11 2021. Truy cập 6 tháng 11 2021. Kiểm tra giá trị ngày tháng trong: |access-date= và |date= (trợ giúp)
  3. ^ PEP 483 -- The Theory of Type Hints. Python.org.
  4. ^ Phần mở rộng tệp .pyo đã bị loại bỏ trong Python 3.5. Xem PEP 0488
  5. ^ Holth, Moore (ngày 30 tháng 3 năm 2014). PEP 0441 -- Improving Python ZIP Application Support. Truy cập ngày 12 tháng 11 năm 2015.
  6. ^ Starlark Language. Lưu trữ bản gốc ngày 15 tháng 6 năm 2020. Truy cập ngày 25 tháng 5 năm 2019.
  7. ^ a b Why was Python created in the first place?. General Python FAQ. Python Software Foundation. Truy cập ngày 22 tháng 3 năm 2007. Lỗi chú thích: Thẻ <ref> không hợp lệ: tên faq-created được định rõ nhiều lần, mỗi lần có nội dung khác
  8. ^ Kuchling, Andrew M. (ngày 22 tháng 12 năm 2006). Interview with Guido van Rossum (July 1998). amk.ca. Bản gốc lưu trữ ngày 1 tháng 5 năm 2007. Truy cập ngày 12 tháng 3 năm 2012.
  9. ^ van Rossum, Guido (1993). An Introduction to Python for UNIX/C Programmers. Proceedings of the NLUUG Najaarsconferentie (Dutch UNIX Users Group). CiteSeerX10.1.1.38.2023. even though the design of C is far from ideal, its influence on Python is considerable.
  10. ^ a b Classes. The Python Tutorial. Python Software Foundation. Truy cập ngày 20 tháng 2 năm 2012. It is a mixture of the class mechanisms found in C++ and Modula-3
  11. ^ Lundh, Fredrik. Call By Object. effbot.org. Bản gốc lưu trữ ngày 23 tháng 11 năm 2019. Truy cập ngày 21 tháng 11 năm 2017. replace "CLU" with "Python", "record" with "instance", and "procedure" with "function or method", and you get a pretty accurate description of Python's object model.
  12. ^ Simionato, Michele. The Python 2.3 Method Resolution Order. Python Software Foundation. The C3 method itself has nothing to do with Python, since it was invented by people working on Dylan and it is described in a paper intended for lispers
  13. ^ Kuchling, A. M. Functional Programming HOWTO. Python v2.7.2 documentation. Python Software Foundation. Truy cập ngày 9 tháng 2 năm 2012.
  14. ^ Schemenauer, Neil; Peters, Tim; Hetland, Magnus Lie (ngày 18 tháng 5 năm 2001). PEP 255 Simple Generators. Python Enhancement Proposals. Python Software Foundation. Truy cập ngày 9 tháng 2 năm 2012.
  15. ^ Smith, Kevin D.; Jewett, Jim J.; Montanaro, Skip; Baxter, Anthony (ngày 2 tháng 9 năm 2004). PEP 318 Decorators for Functions and Methods. Python Enhancement Proposals. Python Software Foundation. Truy cập ngày 24 tháng 2 năm 2012.
  16. ^ More Control Flow Tools. Python 3 documentation. Python Software Foundation. Truy cập ngày 24 tháng 7 năm 2015.
  17. ^ CoffeeScript borrows chained comparisons from Python.
  18. ^ Genie Language - A brief guide. Truy cập ngày 28 tháng 12 năm 2015.
  19. ^ Perl and Python influences in JavaScript. www.2ality.com. ngày 24 tháng 2 năm 2013. Truy cập ngày 15 tháng 5 năm 2015.
  20. ^ Rauschmayer, Axel. Chapter 3: The Nature of JavaScript; Influences. O'Reilly, Speaking JavaScript. Truy cập ngày 15 tháng 5 năm 2015.
  21. ^ Why We Created Julia. Julia website. tháng 2 năm 2012. Truy cập ngày 5 tháng 6 năm 2014. We want something as usable for general programming as Python [...]
  22. ^ Ring Team (ngày 4 tháng 12 năm 2017). Ring and other languages. ring-lang.net. ring-lang.
  23. ^ Bini, Ola (2007). Practical JRuby on Rails Web 2.0 Projects: bringing Ruby on Rails to the Java platform. Berkeley: APress. tr.3. ISBN978-1-59059-881-8.
  24. ^ Lattner, Chris (ngày 3 tháng 6 năm 2014). Chris Lattner's Homepage. Chris Lattner. Truy cập ngày 3 tháng 6 năm 2014. The Swift language is the product of tireless effort from a team of language experts, documentation gurus, compiler optimization ninjas, and an incredibly important internal dogfooding group who provided feedback to help refine and battle-test ideas. Of course, it also greatly benefited from the experiences hard-won by many other languages in the field, drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list.
  25. ^ Bài phỏng vấn Guido van Rossum [1].
  26. ^ Guido van Rossum Stepping Down from Role as Python's Benevolent Dictator For Life | Linux Journal. www.linuxjournal.com (bằng tiếng Anh).
  27. ^ Python boss Guido van Rossum steps down after 30 years | TheINQUIRER. theinquirer.net (bằng tiếng Anh). Bản gốc lưu trữ ngày 19 tháng 2 năm 2019. Truy cập ngày 25 tháng 8 năm 2018.
  28. ^ About the Python Software Foundation. Truy cập 28 tháng 8 năm 2019.
  29. ^ Stack Overflow Developer Survey 2020. Stack Overflow. Lưu trữ bản gốc ngày 2 tháng 3 năm 2021. Truy cập ngày 5 tháng 3 năm 2021.
  30. ^ The State of Developer Ecosystem in 2020 Infographic. JetBrains: Developer Tools for Professionals and Teams (bằng tiếng Anh). Lưu trữ bản gốc ngày 1 tháng 3 năm 2021. Truy cập ngày 5 tháng 3 năm 2021.
  31. ^ index | TIOBE - The Software Quality Company. www.tiobe.com. Lưu trữ bản gốc ngày 25 tháng 2 năm 2018. Truy cập ngày 2 tháng 2 năm 2021. Python has won the TIOBE programming language of the year award! This is for the fourth time in the history, which is a record! The title is awarded to the programming language that has gained most popularity in one year.
  32. ^ PYPL PopularitY of Programming Language index. pypl.github.io (bằng tiếng Anh). Lưu trữ bản gốc ngày 14 tháng 3 năm 2017. Truy cập ngày 26 tháng 3 năm 2021.
  33. ^ a b Venners, Bill (13 tháng 1 năm 2003). The Making of Python. Artima Developer. Artima. Lưu trữ bản gốc ngày 1 tháng 9 năm 2016. Truy cập ngày 22 tháng 3 năm 2007.
  34. ^ van Rossum, Guido (29 tháng 8 năm 2000). SETL (was: Lukewarm about range literals). Python-Dev (Danh sách thư). Lưu trữ bản gốc ngày 14 tháng 7 năm 2018. Truy cập ngày 13 tháng 3 năm 2011.
  35. ^ van Rossum, Guido (20 tháng 1 năm 2009). A Brief Timeline of Python. The History of Python. Lưu trữ bản gốc ngày 5 tháng 6 năm 2020. Truy cập ngày 20 tháng 1 năm 2009.
  36. ^ Fairchild, Carlie (12 tháng 7 năm 2018). Guido van Rossum Stepping Down from Role as Python's Benevolent Dictator For Life. Linux Journal. Lưu trữ bản gốc ngày 13 tháng 7 năm 2018. Truy cập ngày 13 tháng 7 năm 2018.
  37. ^ PEP 8100. Python Software Foundation. Lưu trữ bản gốc ngày 4 tháng 6 năm 2020. Truy cập ngày 4 tháng 5 năm 2019.
  38. ^ PEP 13 -- Python Language Governance. Python.org (bằng tiếng Anh). Lưu trữ bản gốc ngày 27 tháng 5 năm 2021. Truy cập ngày 25 tháng 8 năm 2021.
  39. ^ Kuchling, A. M.; Zadka, Moshe (16 tháng 10 năm 2000). What's New in Python 2.0. Python Software Foundation. Lưu trữ bản gốc ngày 23 tháng 10 năm 2012. Truy cập ngày 11 tháng 2 năm 2012.
  40. ^ Python 3.0 Release. Python Software Foundation. Lưu trữ bản gốc ngày 14 tháng 6 năm 2020. Truy cập ngày 8 tháng 7 năm 2009.
  41. ^ van Rossum, Guido (5 tháng 4 năm 2006). PEP 3000 Python 3000. Python Enhancement Proposals. Python Software Foundation. Bản gốc lưu trữ ngày 3 tháng 3 năm 2016. Truy cập ngày 27 tháng 6 năm 2009.
  42. ^ 2to3 Automated Python 2 to 3 code translation. docs.python.org. Lưu trữ bản gốc ngày 4 tháng 6 năm 2020. Truy cập ngày 2 tháng 2 năm 2021.
  43. ^ Langa, Łukasz (19 tháng 2 năm 2021). Python Insider: Python 3.9.2 and 3.8.8 are now available. Python Insider. Lưu trữ bản gốc ngày 25 tháng 2 năm 2021. Truy cập ngày 26 tháng 2 năm 2021.
  44. ^ Red Hat Customer Portal - Access to 24x7 support and knowledge. access.redhat.com. Lưu trữ bản gốc ngày 6 tháng 3 năm 2021. Truy cập ngày 26 tháng 2 năm 2021.
  45. ^ CVE - CVE-2021-3177. cve.mitre.org. Lưu trữ bản gốc ngày 27 tháng 2 năm 2021. Truy cập ngày 26 tháng 2 năm 2021.
  46. ^ CVE - CVE-2021-23336. cve.mitre.org. Lưu trữ bản gốc ngày 24 tháng 2 năm 2021. Truy cập ngày 26 tháng 2 năm 2021.
  47. ^ The Cain Gang Ltd. Python Metaclasses: Who? Why? When? (PDF). Bản gốc (PDF) lưu trữ ngày 30 tháng 5 năm 2009. Truy cập ngày 27 tháng 6 năm 2009.
  48. ^ 3.3. Special method names. The Python Language Reference. Python Software Foundation. Lưu trữ bản gốc ngày 15 tháng 12 năm 2018. Truy cập ngày 27 tháng 6 năm 2009.
  49. ^ PyDBC: method preconditions, method postconditions and class invariants for Python. Lưu trữ bản gốc ngày 23 tháng 11 năm 2019. Truy cập ngày 24 tháng 9 năm 2011.
  50. ^ Contracts for Python. Lưu trữ bản gốc ngày 15 tháng 6 năm 2020. Truy cập ngày 24 tháng 9 năm 2011.
  51. ^ PyDatalog. Lưu trữ bản gốc ngày 13 tháng 6 năm 2020. Truy cập ngày 22 tháng 7 năm 2012.
  52. ^ Extending and Embedding the Python Interpreter: Reference Counts (bằng tiếng Anh). Docs.python.org. Lưu trữ bản gốc ngày 18 tháng 10 năm 2012. Truy cập ngày 5 tháng 6 năm 2020. Since Python makes heavy use of malloc() and free(), it needs a strategy to avoid memory leaks as well as the use of freed memory. The chosen method is called reference counting.
  53. ^ a b Hettinger, Raymond (30 tháng 1 năm 2002). PEP 289 Generator Expressions. Python Enhancement Proposals. Python Software Foundation. Lưu trữ bản gốc ngày 14 tháng 6 năm 2020. Truy cập ngày 19 tháng 2 năm 2012.
  54. ^ 6.5 itertools Functions creating iterators for efficient looping. Docs.python.org. Lưu trữ bản gốc ngày 14 tháng 6 năm 2020. Truy cập ngày 22 tháng 11 năm 2016.
  55. ^ PEP 206 -- Python Advanced Library. Python.org.
  56. ^ Peters, Tim (19 tháng 8 năm 2004). PEP 20 The Zen of Python. Python Enhancement Proposals. Python Software Foundation. Lưu trữ bản gốc ngày 26 tháng 12 năm 2018. Truy cập ngày 24 tháng 11 năm 2008.
  57. ^ a b Python Culture. ebeab. 21 tháng 1 năm 2014. Bản gốc lưu trữ ngày 30 tháng 1 năm 2014.
  58. ^ General Python FAQ. Python v2.7.3 documentation. Docs.python.org. Lưu trữ bản gốc ngày 24 tháng 10 năm 2012. Truy cập ngày 4 tháng 6 năm 2020.
  59. ^ 15 Ways Python Is a Powerful Force on the Web. Bản gốc lưu trữ ngày 11 tháng 5 năm 2019. Truy cập ngày 3 tháng 7 năm 2018.
  60. ^ 8.18. pprint Data pretty printer Python 3.8.3 documentation. docs.python.org. Lưu trữ bản gốc ngày 22 tháng 1 năm 2021. Truy cập ngày 4 tháng 6 năm 2020.
  61. ^ Clark, Robert (26 tháng 4 năm 2019). How to be Pythonic and why you should care. Medium. Lưu trữ bản gốc ngày 13 tháng 8 năm 2021. Truy cập ngày 20 tháng 1 năm 2021.
  62. ^ Code Style The Hitchhiker's Guide to Python. docs.python-guide.org. Lưu trữ bản gốc ngày 27 tháng 1 năm 2021. Truy cập ngày 20 tháng 1 năm 2021.
  63. ^ Goodger, David. Code Like a Pythonista: Idiomatic Python. Bản gốc lưu trữ ngày 27 tháng 5 năm 2014. Truy cập ngày 24 tháng 3 năm 2009.
  64. ^ How to think like a Pythonista. Bản gốc lưu trữ ngày 23 tháng 3 năm 2018. Truy cập ngày 24 tháng 3 năm 2009.
  65. ^ Is Python a good language for beginning programmers?. General Python FAQ. Python Software Foundation. Lưu trữ bản gốc ngày 24 tháng 10 năm 2012. Truy cập ngày 21 tháng 3 năm 2007.
  66. ^ Guttag, John V. (12 tháng 8 năm 2016). Introduction to Computation and Programming Using Python: With Application to Understanding Data. MIT Press. ISBN978-0-262-52962-4.
  67. ^ PEP 8 -- Style Guide for Python Code. Python.org. Lưu trữ bản gốc ngày 17 tháng 4 năm 2019. Truy cập ngày 26 tháng 3 năm 2019.
  68. ^ Highlights: Python 2.5. Python.org. Lưu trữ bản gốc ngày 4 tháng 8 năm 2019. Truy cập ngày 20 tháng 3 năm 2018.
  69. ^ division. python.org. Lưu trữ bản gốc ngày 20 tháng 7 năm 2006. Truy cập ngày 30 tháng 7 năm 2014.
  70. ^ PEP 0465 -- A dedicated infix operator for matrix multiplication. python.org. Lưu trữ bản gốc ngày 4 tháng 6 năm 2020. Truy cập ngày 1 tháng 1 năm 2016.
  71. ^ Python 3.5.1 Release and Changelog. python.org. Lưu trữ bản gốc ngày 14 tháng 5 năm 2020. Truy cập ngày 1 tháng 1 năm 2016.
  72. ^ What's New in Python 3.8. Lưu trữ bản gốc ngày 8 tháng 6 năm 2020. Truy cập ngày 14 tháng 10 năm 2019.
  73. ^ Chapter 15. Expressions - 15.21.1. Numerical Equality Operators == and!=. Oracle Corporation. Lưu trữ bản gốc ngày 7 tháng 6 năm 2020. Truy cập ngày 28 tháng 8 năm 2016.
  74. ^ Chapter 15. Expressions - 15.21.3. Reference Equality Operators == and!=. Oracle Corporation. Lưu trữ bản gốc ngày 7 tháng 6 năm 2020. Truy cập ngày 28 tháng 8 năm 2016.
  75. ^ van Rossum, Guido; Hettinger, Raymond (7 tháng 2 năm 2003). PEP 308 Conditional Expressions. Python Enhancement Proposals. Python Software Foundation. Lưu trữ bản gốc ngày 13 tháng 3 năm 2016. Truy cập ngày 13 tháng 7 năm 2011.
  76. ^ 4. Built-in Types Python 3.6.3rc1 documentation. python.org. Lưu trữ bản gốc ngày 14 tháng 6 năm 2020. Truy cập ngày 1 tháng 10 năm 2017.
  77. ^ 5.3. Tuples and Sequences Python 3.7.1rc2 documentation. python.org. Lưu trữ bản gốc ngày 10 tháng 6 năm 2020. Truy cập ngày 17 tháng 10 năm 2018.
  78. ^ a b PEP 498 -- Literal String Interpolation. python.org. Lưu trữ bản gốc ngày 15 tháng 6 năm 2020. Truy cập ngày 8 tháng 3 năm 2017.
  79. ^ Sweigart, Al (2020). Beyond the Basic Stuff with Python: Best Practices for Writing Clean Code (bằng tiếng Anh). No Starch Press. tr.322. ISBN978-1-59327-966-0. Lưu trữ bản gốc ngày 13 tháng 8 năm 2021. Truy cập ngày 7 tháng 7 năm 2021.
  80. ^ The Python Language Reference, section 3.3. New-style and classic classes, for release 2.7.1. Bản gốc lưu trữ ngày 26 tháng 10 năm 2012. Truy cập ngày 12 tháng 1 năm 2011.
  81. ^ Type hinting for Python. LWN.net. 24 tháng 12 năm 2014. Lưu trữ bản gốc ngày 20 tháng 6 năm 2019. Truy cập ngày 5 tháng 5 năm 2015.
  82. ^ mypy - Optional Static Typing for Python. Lưu trữ bản gốc ngày 6 tháng 6 năm 2020. Truy cập ngày 28 tháng 1 năm 2017.
  83. ^ a b 15. Floating Point Arithmetic: Issues and Limitations Python 3.8.3 documentation. docs.python.org. Lưu trữ bản gốc ngày 6 tháng 6 năm 2020. Truy cập ngày 6 tháng 6 năm 2020. Almost all machines today (November 2000) use IEEE-754 floating point arithmetic, and almost all platforms map Python floats to IEEE-754 double precision.
  84. ^ Lỗi chú thích: Thẻ <ref> sai; không có nội dung trong thẻ ref có tên pep0237
  85. ^ a b Built-in Types. Lưu trữ bản gốc ngày 14 tháng 6 năm 2020. Truy cập ngày 3 tháng 10 năm 2019.
  86. ^ PEP 465 -- A dedicated infix operator for matrix multiplication. python.org. Lưu trữ bản gốc ngày 29 tháng 5 năm 2020. Truy cập ngày 3 tháng 7 năm 2018.
  87. ^ a b Zadka, Moshe; van Rossum, Guido (11 tháng 3 năm 2001). PEP 238 Changing the Division Operator. Python Enhancement Proposals. Python Software Foundation. Lưu trữ bản gốc ngày 28 tháng 5 năm 2020. Truy cập ngày 23 tháng 10 năm 2013.
  88. ^ Why Python's Integer Division Floors. Lưu trữ bản gốc ngày 5 tháng 6 năm 2020. Truy cập ngày 25 tháng 8 năm 2010.
  89. ^ round, The Python standard library, release 3.2, §2: Built-in functions, lưu trữ bản gốc ngày 25 tháng 10 năm 2012, truy cập ngày 14 tháng 8 năm 2011
  90. ^ round, The Python standard library, release 2.7, §2: Built-in functions, lưu trữ bản gốc ngày 27 tháng 10 năm 2012, truy cập ngày 14 tháng 8 năm 2011
  91. ^ Beazley, David M. (2009). Python Essential Reference (ấn bản 4). tr.66.
  92. ^ Kernighan, Brian W.; Ritchie, Dennis M. (1988). The C Programming Language (ấn bản 2). tr.206.
  93. ^ Batista, Facundo. PEP 0327 -- Decimal Data Type. Python.org. Lưu trữ bản gốc ngày 4 tháng 6 năm 2020. Truy cập ngày 26 tháng 9 năm 2015.
  94. ^ What's New in Python 2.6 Python v2.6.9 documentation. docs.python.org. Lưu trữ bản gốc ngày 23 tháng 12 năm 2019. Truy cập ngày 26 tháng 9 năm 2015.
  95. ^ 10 Reasons Python Rocks for Research (And a Few Reasons it Doesn't) Hoyt Koepke. www.stat.washington.edu. Bản gốc lưu trữ ngày 31 tháng 5 năm 2020. Truy cập ngày 3 tháng 2 năm 2019.
  96. ^ Shell, Scott (17 tháng 6 năm 2014). An introduction to Python for scientific computing (PDF). Lưu trữ (PDF) bản gốc ngày 4 tháng 2 năm 2019. Truy cập ngày 3 tháng 2 năm 2019.
  97. ^ Piotrowski, Przemyslaw (tháng 7 năm 2006). Build a Rapid Web Development Environment for Python Server Pages and Oracle. Oracle Technology Network. Oracle. Lưu trữ bản gốc ngày 2 tháng 4 năm 2019. Truy cập ngày 12 tháng 3 năm 2012.
  98. ^ Batista, Facundo (17 tháng 10 năm 2003). PEP 327 Decimal Data Type. Python Enhancement Proposals. Python Software Foundation. Lưu trữ bản gốc ngày 4 tháng 6 năm 2020. Truy cập ngày 24 tháng 11 năm 2008.
  99. ^ Eby, Phillip J. (7 tháng 12 năm 2003). PEP 333 Python Web Server Gateway Interface v1.0. Python Enhancement Proposals. Python Software Foundation. Lưu trữ bản gốc ngày 14 tháng 6 năm 2020. Truy cập ngày 19 tháng 2 năm 2012.
  100. ^ Modulecounts. Modulecounts. 28 tháng 9 năm 2021. Lưu trữ bản gốc ngày 24 tháng 9 năm 2021. Truy cập ngày 28 tháng 9 năm 2021.
  101. ^ Enthought, Canopy. Canopy. www.enthought.com. Bản gốc lưu trữ ngày 15 tháng 7 năm 2017. Truy cập ngày 20 tháng 8 năm 2016.
  102. ^ The Computer Language Benchmark Game
  103. ^ a b Warsaw, Barry; Hylton, Jeremy; Goodger, David (13 tháng 6 năm 2000). PEP 1 PEP Purpose and Guidelines. Python Enhancement Proposals. Python Software Foundation. Lưu trữ bản gốc ngày 6 tháng 6 năm 2020. Truy cập ngày 19 tháng 4 năm 2011.
  104. ^ PEP 8 -- Style Guide for Python Code. Python.org. Lưu trữ bản gốc ngày 17 tháng 4 năm 2019. Truy cập ngày 26 tháng 3 năm 2019.
  105. ^ Cannon, Brett. Guido, Some Guys, and a Mailing List: How Python is Developed. python.org. Python Software Foundation. Bản gốc lưu trữ ngày 1 tháng 6 năm 2009. Truy cập ngày 27 tháng 6 năm 2009.
  106. ^ Python Developer's Guide Python Developer's Guide. devguide.python.org. Lưu trữ bản gốc ngày 9 tháng 11 năm 2020. Truy cập ngày 17 tháng 12 năm 2019.
  107. ^ PEP 602 -- Annual Release Cycle for Python. Python.org (bằng tiếng Anh). Lưu trữ bản gốc ngày 14 tháng 6 năm 2020. Truy cập ngày 6 tháng 11 năm 2019.
  108. ^ Changing the Python release cadence [LWN.net]. lwn.net. Lưu trữ bản gốc ngày 6 tháng 11 năm 2019. Truy cập ngày 6 tháng 11 năm 2019.
  109. ^ Norwitz, Neal (8 tháng 4 năm 2002). [Python-Dev] Release Schedules (was Stability & change). Lưu trữ bản gốc ngày 15 tháng 12 năm 2018. Truy cập ngày 27 tháng 6 năm 2009.
  110. ^ Python Buildbot. Python Developers Guide. Python Software Foundation. Lưu trữ bản gốc ngày 5 tháng 6 năm 2020. Truy cập ngày 24 tháng 9 năm 2011.
  111. ^ Prechelt, Lutz (14 tháng 3 năm 2000). An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl (PDF). Lưu trữ (PDF) bản gốc ngày 3 tháng 1 năm 2020. Truy cập ngày 30 tháng 8 năm 2013.
  112. ^ Quotes about Python. Python Software Foundation. Lưu trữ bản gốc ngày 3 tháng 6 năm 2020. Truy cập ngày 8 tháng 1 năm 2012.
  113. ^ Organizations Using Python. Python Software Foundation. Lưu trữ bản gốc ngày 21 tháng 8 năm 2018. Truy cập ngày 15 tháng 1 năm 2009.
  114. ^ Tornado: Facebook's Real-Time Web Framework for Python - Facebook for Developers. Facebook for Developers (bằng tiếng Anh). Lưu trữ bản gốc ngày 19 tháng 2 năm 2019. Truy cập ngày 19 tháng 6 năm 2018.
  115. ^ What Powers Instagram: Hundreds of Instances, Dozens of Technologies. Instagram Engineering. 11 tháng 12 năm 2016. Lưu trữ bản gốc ngày 15 tháng 6 năm 2020. Truy cập ngày 27 tháng 5 năm 2019.
  116. ^ How we use Python at Spotify. Spotify Labs (bằng tiếng Anh). 20 tháng 3 năm 2013. Lưu trữ bản gốc ngày 10 tháng 6 năm 2020. Truy cập ngày 25 tháng 7 năm 2018.
  117. ^ GitHub - reddit-archive/reddit: historical code from reddit.com., The Reddit Archives, lưu trữ bản gốc ngày 1 tháng 6 năm 2020, truy cập ngày 20 tháng 3 năm 2019

Liên kết ngoàiSửa đổi

  • Trang chủ chính thức
  • Python Wiki
  • Tài liệu Python
  • Python Cheese Shop Kho đựng phần mềm viết bằng Python; trước đây gọi là Python Package Index (PyPI)