Hướng dẫn history of python versions - lịch sử của các phiên bản python
Python 2Python 2 ra mắt vào năm 2000 với những thay đổi lớn đối với 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à Bộ sưu tập rác. Một chút sau, Python 2.2 đã giới thiệu sự thống nhất của các loại và lớp theo một hệ thống phân cấp, cho phép Python thực sự hướng đến đối tượng. Trong khoảng thời gian này, nhiều lập trình viên thường áp dụng Python như một ngôn ngữ kịch bản thay thế. Kể từ khi Java thống trị trong thế giới của các ứng dụng quy mô doanh nghiệp, Python đã được sử dụng trong các ứng dụng nhỏ hơn, thích hợp.alternate scripting language. Since Java was dominating in the world of enterprise-sized applications, Python was used in smaller, niche applications. Ngay cả các nhà phát triển Java cũng bắt đầu sử dụng Python để tăng tốc độ mã hóa do khả năng tương tác của nó. UnicodePython 2.0 đã giới thiệu kiểu dữ liệu chuỗi Unicode được phân bổ số 16 bit để biểu diễn các ký tự thay vì chuỗi 8bit tiêu chuẩn. Điều này bổ sung thêm 65.000 biểu tượng được hỗ trợ bổ sung từ các ngôn ngữ kịch bản không phải là tiếng Latin 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 là chữ cái như biểu tượng cảm xúc. Cú pháp cho chuỗi Unicode là:
Bạn cũng có thể sử dụng Unicode để mã hóa các chuỗi của riêng bạn thành một chỉ định duy nhất. Gọi chỉ định 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 sử dụng thêm không gian hoặc lưu nó trong một biến. Sau đây ghi một chuỗi unicode vào tệp và mã hóa nó là 13:
Sau đó, bạn có thể đọc tệp được mã hóa sau đó bằng cách sử dụng: Danh sách hiểuList ComprehensionDanh sách toàn diện được sử dụng để tạo danh sách mới từ các vòng lặp khác. Danh sách toàn diện lấy và trả lại một danh sách, cho phép bạn cắt danh sách theo một tiêu chí nhất định hoặc tạo một danh sách mới với các yếu tố mới được thao tác. Cú pháp cho toàn bộ danh sách là:
Các phần sau đây cho thấy cách bạn có thể sử dụng toàn bộ danh sách để trả về một danh sách mới chỉ có các yếu tố có trong cả hai danh sách được truyền. Chu kỳ thu gom rácGarbage collection cyclesPython 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ỳ.cycle-based system. 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 chỉ vào nó. Đối tượng sau đó đã tự động bị xóa một khi bộ đếm đó đạt đến 0. Tuy nhiên, nó sẽ xóa các đối tượng được chỉ ra nhưng không thể truy cập được, dẫn đến việc rò rỉ bộ nhớ. Python 2.0 sửa chữa điều này theo các chu kỳ định kỳ gọi bộ 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ớ. Chi phí chi phí của các chu kỳ xóa đã được giảm do tối ưu hóa. Nhiệm vụ tăng cườngPython 2.0 cũng bổ sung 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ụ: 14 thêm 1 vào giá trị của 15. Đây là phiên bản ngắn hơn của câu lệnh 16.Danh sách đầy đủ các toán tử phân công được hỗ trợ là 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 và 27.Các toán tử này đặc biệt hữu ích khi được sử dụng cùng với các cấu trúc vòng lặp. Python
Python là một ngôn ngữ lập trình cấp cao, cấp cao. Triết lý thiết kế của nó nhấn mạnh khả năng đọc mã với việc sử dụng thụt lề đáng kể. [33] is a high-level, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation.[33] is a high-level, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation.[33] Python được gõ một cách linh hoạt và thu thập rác. Nó hỗ trợ nhiều mô hình lập trình, bao gồm có cấu trúc (đặc biệt là thủ tục), lập trình định hướng đối tượng và chức năng. Nó thường được mô tả là ngôn ngữ "bao gồm pin" do thư viện tiêu chuẩn toàn diện của nó. [34] [35] Guido Van Rossum bắt đầu làm việc trên Python vào cuối những năm 1980 với tư cách là người kế vị ngôn ngữ lập trình ABC và lần đầu tiên phát hành nó vào năm 1991 với tên Python & NBSP; 0.9.0. [36] Python & NBSP; 2.0 đã được phát hành vào năm 2000 và giới thiệu các tính năng mới như toàn bộ danh sách, thu thập rác cố định chu kỳ, đếm tham chiếu và hỗ trợ Unicode. Python & NBSP; 3.0, được phát hành năm 2008, là một bản sửa đổi lớn không tương thích hoàn toàn với các phiên bản trước đó. Python & NBSP; 2 đã bị ngừng phiên bản & NBSP; 2.7,18 vào năm 2020. [37] Python liên tục xếp hạng là một trong những ngôn ngữ lập trình phổ biến nhất. [38] [39] [40] [41] History[edit][edit]Python đã được hình thành vào cuối những năm 1980 [42] bởi Guido Van Rossum tại Centrum Wiskunde & Informatica (CWI) ở Hà Lan như là người kế thừa ngôn ngữ lập trình ABC, được lấy cảm hứng từ SETL, [43] có khả năng xử lý ngoại lệ và giao tiếp với việc điều trị ngoại lệ và giao tiếp với Hệ điều hành Amoeba. [13] Việc thực hiện nó bắt đầu vào tháng 12 & NBSP; 1989. [44] Van Rossum gánh vác trách nhiệm duy nhất cho dự án, với tư cách là nhà phát triển chính, cho đến ngày 12 tháng 7 năm 2018, khi ông tuyên bố "kỳ nghỉ vĩnh viễn" từ trách nhiệm của mình với tư cách là "nhà độc tài nhân từ cho cuộc sống" của Python, một tiêu đề mà cộng đồng Python ban cho anh ta để phản ánh Cam kết lâu dài với tư cách là người ra quyết định chính của dự án. [45] Vào tháng 1 & NBSP; 2019, các nhà phát triển Python Core hoạt động đã bầu một hội đồng chỉ đạo gồm năm thành viên để lãnh đạo dự án. [46] [47] Python & NBSP; 2.0 được phát hành vào ngày 16 tháng 10 năm 2000, với nhiều tính năng mới. [48] Python & NBSP; 3.0, được phát hành vào ngày 3 tháng 12 năm 2008, với nhiều tính năng chính của nó được đưa vào Python & NBSP; 2.6.x [49] và 2.7.x. Các bản phát hành của Python & NBSP; 3 bao gồm tiện ích 28, tự động hóa việc dịch mã Python & NBSP; 2 sang Python & NBSP; 3. [50]Cuộc sống cuối cùng của Python & NBSP; 2.7 ban đầu được thiết lập vào năm 2015, sau đó bị hoãn lại đến năm 2020 vì lo ngại rằng một cơ quan lớn của mã hiện tại không thể dễ dàng được chuyển tiếp đến Python & NBSP; 3. [51] [52] Không có bản vá bảo mật nào nữa hoặc các cải tiến khác sẽ được phát hành cho nó. [53] [54] Hiện tại chỉ có 3,7 và sau đó được hỗ trợ. Vào năm 2021, Python & NBSP; 3.9.2 và 3.8.8 đã được tiến hành [55] vì tất cả các phiên bản Python (bao gồm 2.7 [56]) có vấn đề bảo mật dẫn đến thực thi mã từ xa có thể [57] và ngộ độc bộ đệm web. [58] Vào năm 2022, Python & NBSP; 3.10.4 và 3.9.12 đã được tiến hành [59] và 3.8.13 và 3.7.13, vì nhiều vấn đề bảo mật. [60] Khi Python 3.9.13 được phát hành vào tháng 5 năm 2022, có thông báo rằng sê -ri 3.9 (tham gia loạt phim cũ hơn 3.8 và 3.7) sẽ chỉ nhận được các sửa chữa bảo mật trong tương lai. [61] Vào ngày 7 tháng 9 năm 2022, bốn bản phát hành mới đã được thực hiện do một cuộc tấn công từ chối dịch vụ tiềm năng: 3.10.7, 3.9.14, 3.8,14 và 3.7,14. [62] [63] Loại bỏ khỏi Python [Chỉnh sửa][edit]Mô -đun 29 không dùng đã được xóa khỏi Python 3.12 (alpha). Và một số chức năng cũ, bị hỏng và không dùng nữa (ví dụ: từ mô -đun 30), các lớp và phương pháp đã bị xóa. Các thành viên độ dài 31 và 32 không dùng nữa của việc triển khai C của các đối tượng Unicode đã bị xóa, [64] để biến UTF-8 là mặc định trong các phiên bản Python sau này.Trong lịch sử, Python 3 cũng đã thay đổi từ Python 2, ví dụ: Thay đổi nhà điều hành bộ phận. Triết lý và tính năng thiết kế [Chỉnh sửa][edit]Python là một ngôn ngữ lập trình đa mô hình. Lập trình hướng đối tượng và lập trình có cấu trúc được hỗ trợ đầy đủ, và nhiều tính năng của chúng hỗ trợ lập trình chức năng và lập trình theo định hướng khía cạnh (bao gồm cả metaprogramming [65] và metaobjects). [66] Nhiều mô hình khác được hỗ trợ thông qua các tiện ích mở rộng, bao gồm thiết kế theo hợp đồng [67] [68] và lập trình logic. [69] Python sử dụng gõ động và kết hợp đếm tham chiếu và bộ thu rác phát hiện chu kỳ để quản lý bộ nhớ. [70] Nó sử dụng độ phân giải tên động (ràng buộc muộn), liên kết các tên phương thức và tên biến trong quá trình thực hiện chương trình. Thiết kế của nó cung cấp một số hỗ trợ cho lập trình chức năng trong truyền thống LISP. Nó có các chức năng ____ 8, ____ 9and____10; Liệt kê toàn diện, từ điển, bộ và biểu thức máy phát. [71] Thư viện tiêu chuẩn có hai mô -đun ( Spanning multiple lines1 và Spanning multiple lines2) triển khai các công cụ chức năng được mượn từ Haskell và tiêu chuẩn ML. [72] Triết lý cốt lõi của nó được tóm tắt trong tài liệu The Zen of Python (PEP 20), bao gồm các câu cách ngôn như: [73]
Thay vì xây dựng tất cả các chức năng của nó thành cốt lõi của nó, Python được thiết kế để có thể mở rộng cao thông qua các mô -đun. Mô -đun nhỏ gọn này đã làm cho nó đặc biệt phổ biến như một phương tiện để thêm các giao diện lập trình vào các ứng dụng hiện có. Tầm nhìn của Van Rossum về một ngôn ngữ cốt lõi nhỏ với một thư viện tiêu chuẩn lớn và thông dịch viên dễ dàng mở rộng xuất phát từ sự thất vọng của anh ta với ABC, điều này đã tán thành cách tiếp cận ngược lại. [42] Python phấn đấu cho một cú pháp và ngữ pháp đơn giản hơn, ít lộn xộn hơn trong khi cho các nhà phát triển lựa chọn trong phương pháp mã hóa của họ. Trái ngược với phương châm "có nhiều cách để làm điều đó", Python nắm lấy một "nên có một cách và tốt nhất là chỉ có một cách rõ ràng để làm điều đó". [73] Alex Martelli, một thành viên tại Quỹ phần mềm Python và tác giả sách Python, đã viết: "Để mô tả một cái gì đó là 'thông minh' không được coi là một lời khen trong văn hóa Python." [74] Các nhà phát triển của Python cố gắng tránh tối ưu hóa sớm và từ chối các bản vá cho các phần không quan trọng của việc thực hiện tham chiếu CPython sẽ cung cấp tốc độ tăng biên với chi phí rõ ràng. [75] Khi tốc độ quan trọng, một lập trình viên Python có thể di chuyển các hàm quan trọng về thời gian sang các mô-đun mở rộng được viết bằng các ngôn ngữ như C; hoặc sử dụng Pypy, một trình biên dịch chỉ trong thời gian. Cython cũng có sẵn, dịch tập lệnh Python thành C và thực hiện các cuộc gọi API cấp C trực tiếp vào trình thông dịch Python. Các nhà phát triển của Python nhắm đến nó là thú vị để sử dụng. Điều này được phản ánh trong tên của nó là một cống phẩm cho nhóm hài kịch Anh Monty Python [76], trong các cách tiếp cận vui tươi thỉnh thoảng cho các hướng dẫn và tài liệu tham khảo, chẳng hạn như các ví dụ đề cập đến thư rác và trứng (tham chiếu đến bản phác thảo Monty Python) của foo tiêu chuẩn và thanh. [77] [78] Tên ngôn ngữ lập trình 'Python' xuất phát từ loạt phim hài của BBC Monty Python's Flying Circus. Guido Van Rossum nghĩ rằng anh ta cần một cái tên ngắn, độc đáo và hơi bí ẩn, và vì vậy, anh ta quyết định đặt tên cho ngôn ngữ lập trình 'Python'. [76] Một chủ nghĩa thần kinh phổ biến trong cộng đồng Python là Pythonic, có nhiều ý nghĩa liên quan đến phong cách chương trình. Mã "Pythonic" có thể sử dụng các thành ngữ Python tốt, tự nhiên hoặc thể hiện sự lưu loát trong ngôn ngữ hoặc phù hợp với triết lý tối giản của Python và nhấn mạnh vào khả năng đọc. Mã khó hiểu hoặc đọc giống như một phiên âm thô từ ngôn ngữ lập trình khác được gọi là Unpythonic. [79] [80] Người dùng Python và người ngưỡng mộ, đặc biệt là những người được coi là hiểu biết hoặc có kinh nghiệm, thường được gọi là Pythonistas. [81] [82] Cú pháp và ngữ nghĩa [Chỉnh sửa][edit]Python có nghĩa là một ngôn ngữ dễ đọc. Định dạng của nó không bị ảnh hưởng trực quan và thường sử dụng các từ khóa tiếng Anh trong đó các ngôn ngữ khác sử dụng dấu câu. Không giống như nhiều ngôn ngữ khác, nó không sử dụng dấu ngoặc xoăn để phân định các khối và dấu chấm phẩy sau khi các câu lệnh được cho phép nhưng hiếm khi được sử dụng. Nó có ít trường hợp ngoại lệ và trường hợp đặc biệt hơn C hoặc Pascal. [83] Indentation[edit][edit]Python sử dụng vết lõm khoảng trắng, thay vì dấu ngoặc xoăn hoặc từ khóa, để phân định các khối. Sự gia tăng vết lõm đến sau một số tuyên bố nhất định; Giảm thụt vào biểu thị sự kết thúc của khối hiện tại. [84] Do đó, cấu trúc trực quan của chương trình đại diện chính xác cho cấu trúc ngữ nghĩa của nó. [85] Tính năng này đôi khi được gọi là quy tắc bên ngoài. Một số ngôn ngữ khác sử dụng thụt lề theo cách này; Nhưng trong hầu hết, vết lõm không có ý nghĩa ngữ nghĩa. Kích thước thụt được đề xuất là bốn khoảng trống. [86] Báo cáo và luồng kiểm soát [Chỉnh sửa][edit]Các tuyên bố của Python bao gồm:
Câu lệnh gán ( Spanning multiple lines3) liên kết một tên làm tham chiếu đến một đối tượng riêng biệt, được phân bổ tự động. Các biến sau đó có thể được bật lại bất cứ lúc nào cho bất kỳ đối tượng nào. Trong Python, một tên biến là một người giữ tham chiếu chung mà không có loại dữ liệu cố định; Tuy nhiên, nó luôn luôn đề cập đến một số đối tượng với một loại. Điều này được gọi là gõ động, trái ngược với các ngôn ngữ được gõ tĩnh, trong đó mỗi biến có thể chỉ chứa một giá trị của một loại nhất định. Python không hỗ trợ tối ưu hóa cuộc gọi đuôi hoặc tiếp tục hạng nhất, và, theo Van Rossum, nó sẽ không bao giờ. [89] [90] Tuy nhiên, hỗ trợ tốt hơn cho chức năng giống như coroutine được cung cấp bằng cách mở rộng các trình tạo của Python. [91] Trước 2.5, máy phát điện đã lười biếng; Dữ liệu đã được truyền một cách đơn hướng ra khỏi máy phát điện. Từ Python & NBSP; 2.5 trở đi, có thể chuyển dữ liệu trở lại chức năng máy phát; và từ phiên bản 3.3, nó có thể được chuyển qua nhiều cấp độ ngăn xếp. [92] Expressions[edit][edit]Một số biểu thức Python tương tự như các biểu thức bằng các ngôn ngữ như C và Java, trong khi một số không:
Trong Python, một sự khác biệt giữa các biểu thức và tuyên bố được thực thi một cách cứng nhắc, trái ngược với các ngôn ngữ như LISP thông thường, sơ đồ hoặc ruby. Điều này dẫn đến việc sao chép một số chức năng. Ví dụ:
Các câu lệnh không thể là một phần của biểu thức Danh sách và các biểu thức toàn diện hoặc biểu thức Lambda khác, tất cả đều là biểu thức, không thể chứa các câu lệnh. Một trường hợp cụ thể là một câu lệnh gán như 776 không thể tạo thành một phần của biểu thức có điều kiện của một câu lệnh có điều kiện. Điều này có lợi thế là tránh lỗi C cổ điển khi nhầm một toán tử gánSpanning multiple lines3 đối với toán tử bình đẳng 291 trong các điều kiện: 779 có giá trị về mặt cú pháp (nhưng có thể ngoài ý muốn), nhưng 840 gây ra lỗi cú pháp trong Python.Methods[edit][edit]Các phương thức trên các đối tượng là các hàm được gắn vào lớp của đối tượng; Cú pháp 841, đối với các phương pháp và chức năng bình thường, đường cú pháp cho 842. Các phương thức Python có tham số 843 rõ ràng để truy cập dữ liệu thể hiện, trái ngược với bản thân ngầm (hoặc 844) trong một số ngôn ngữ lập trình hướng đối tượng khác (ví dụ: C ++, Java, Objective-C, Ruby). [103] Python cũng cung cấp các phương thức, thường được gọi là các phương thức Dunder (do tên của chúng bắt đầu và kết thúc bằng hai phần tử), để cho phép các lớp do người dùng xác định sửa đổi cách chúng được xử lý bởi các hoạt động gốc bao gồm độ dài, so sánh, trong các hoạt động số học và chuyển đổi loại. [104]Typing[edit][edit]Phân cấp loại tiêu chuẩn trong Python & NBSP; 3 Python sử dụng gõ vịt và đã gõ các đối tượng nhưng không biết tên biến. Các ràng buộc loại không được kiểm tra tại thời điểm biên dịch; Thay vào đó, các hoạt động trên một đối tượng có thể thất bại, biểu thị rằng nó không thuộc loại phù hợp. Mặc dù được gõ linh hoạt, Python được gõ mạnh, các hoạt động cấm không được xác định rõ (ví dụ, thêm một số vào một chuỗi) thay vì âm thầm cố gắng để hiểu được chúng. Python cho phép các lập trình viên xác định các loại của riêng họ bằng các lớp, thường được sử dụng cho lập trình hướng đối tượng. Các trường hợp mới của các lớp được xây dựng bằng cách gọi lớp (ví dụ: 845 hoặc 846) và các lớp là các trường hợp của metaclass 847 (bản thân nó là một thể hiện của chính nó), cho phép siêu hình và phản xạ.Trước phiên bản & nbsp; 3.0, Python có hai loại lớp (cả hai đều sử dụng cùng một cú pháp): kiểu cũ và kiểu mới, [105] phiên bản Python hiện tại chỉ hỗ trợ phong cách mới của ngữ nghĩa. Kế hoạch dài hạn là hỗ trợ gõ dần dần. [106] Cú pháp của Python cho phép chỉ định các loại tĩnh, nhưng chúng không được kiểm tra trong quá trình triển khai mặc định, CPython. Một máy kiểm tra loại tĩnh tùy chọn thử nghiệm, MyPy, hỗ trợ kiểm tra loại thời gian biên dịch. [107] Tóm tắt các loại tích hợp của Python 3
Spanning multiple lines 01có thể thay đổi Trình tự của byte
Spanning multiple lines06 Spanning multiple lines07 Spanning multiple lines08 Spanning multiple lines09 Spanning multiple lines02 Spanning multiple lines03 Spanning multiple lines04 Spanning multiple lines03 Spanning multiple lines04 Spanning multiple lines05 Spanning multiple lines02 Spanning multiple lines03 Spanning multiple lines04 Spanning multiple lines07 Spanning multiple lines08 849Spanning multiple lines00 Spanning multiple lines11 Spanning multiple lines02 Spanning multiple lines03 Spanning multiple lines04 Spanning multiple lines14 Spanning multiple lines90 trong mô-đun Spanning multiple lines91 cung cấp các số điểm nổi thập phân cho độ chính xác tùy ý được xác định trước và một số chế độ làm tròn. [118] Lớp Spanning multiple lines92 trong mô -đun Spanning multiple lines93 cung cấp độ chính xác tùy ý cho các số hợp lý. [119] Do thư viện toán học rộng rãi của Python, và thư viện của bên thứ ba, tiếp tục mở rộng các khả năng bản địa, nó thường được sử dụng như một ngôn ngữ kịch bản khoa học để hỗ trợ các vấn đề như xử lý dữ liệu và thao tác bằng số. [120] [121] Ví dụ lập trình [Chỉnh sửa][edit]Hello World Chương trình: Chương trình để tính toán giai thừa của một số nguyên dương: 4Libraries[edit][edit]Thư viện tiêu chuẩn lớn của Python [122] cung cấp các công cụ phù hợp với nhiều nhiệm vụ và thường được trích dẫn là một trong những thế mạnh lớn nhất của nó. Đối với các ứng dụng hướng tới Internet, nhiều định dạng và giao thức tiêu chuẩn như MIME và HTTP được hỗ trợ. Nó bao gồm các mô-đun để tạo giao diện người dùng đồ họa, kết nối với cơ sở dữ liệu quan hệ, tạo số giả, số học với số thập phân chính xác tùy ý, [123] thao tác các biểu thức chính quy và kiểm tra đơn vị. Một số phần của thư viện tiêu chuẩn được đề cập bởi các thông số kỹ thuật, ví dụ, việc triển khai giao diện cổng máy chủ web (WSGI) Spanning multiple lines94 theo PEP 333 [124], hầu hết được chỉ định bởi mã, tài liệu nội bộ và bộ kiểm tra của chúng. Tuy nhiên, vì hầu hết các thư viện tiêu chuẩn là mã python đa nền tảng, chỉ một vài mô-đun cần thay đổi hoặc viết lại cho việc triển khai biến thể. Kể từ tháng 6 & NBSP; 2022, Chỉ số gói Python (PYPI), kho lưu trữ chính thức cho phần mềm Python của bên thứ ba, chứa hơn 380.000 [125] các gói có nhiều chức năng, bao gồm:
Môi trường phát triển [Chỉnh sửa][edit]Hầu hết các triển khai Python (bao gồm cả CPYThon) bao gồm vòng lặp in (repl) của Read Read Eval, cho phép họ hoạt động như một trình thông dịch dòng lệnh mà người dùng nhập các câu lệnh theo tuần tự và nhận kết quả ngay lập tức. Python cũng đi kèm với một môi trường phát triển tích hợp (IDE) được gọi là IDLE, hướng đến người mới bắt đầu hơn. Các vỏ khác, bao gồm Idle và Ipython, thêm các khả năng khác như cải thiện tự động hoàn thành, duy trì trạng thái phiên và làm nổi bật cú pháp. Cũng như môi trường phát triển tích hợp máy tính để bàn tiêu chuẩn, có các IDE dựa trên trình duyệt web, bao gồm Sagemath, để phát triển các chương trình liên quan đến khoa học và toán học; Pythonanywhere, một IDE dựa trên trình duyệt và môi trường lưu trữ; và Canopy IDE, một IDE thương mại nhấn mạnh điện toán khoa học. [126] Implementations[edit][edit]Thực hiện tham chiếu [Chỉnh sửa][edit]CPython là việc thực hiện tham chiếu của Python. Nó được viết bằng C, đáp ứng tiêu chuẩn C89 (Python 3.11 sử dụng C11 [127]) với một số tính năng C99 được chọn (với các phiên bản C sau này, nó được coi là lỗi thời. [128] [129] Các tiện ích mở rộng của bên thứ ba không giới hạn ở các phiên bản C cũ hơn, ví dụ. 133] CPython được phân phối với một thư viện tiêu chuẩn lớn được viết trong hỗn hợp C và Python gốc, và có sẵn cho nhiều nền tảng, bao gồm cả Windows (bắt đầu với Python & NBSP; 3.9, trình cài đặt Python cố tình không cài đặt trên Windows 7 và 8; [134] . VMS. [136] Tính di động của nền tảng là một trong những ưu tiên sớm nhất của nó. [137] . Các triển khai khác [Chỉnh sửa][edit]
Việc triển khai không được hỗ trợ [Chỉnh sửa][edit]Các trình biên dịch Python chỉ trong thời gian khác đã được phát triển, nhưng hiện không được hỗ trợ:
Các trình biên dịch chéo sang các ngôn ngữ khác [chỉnh sửa][edit]Có một số trình biên dịch cho các ngôn ngữ đối tượng cấp cao, với Python không giới hạn, một tập hợp con bị hạn chế của Python hoặc một ngôn ngữ tương tự như Python như ngôn ngữ nguồn:
Chuyên:
Các dự án cũ hơn (hoặc không được sử dụng với Python 3. X và cú pháp mới nhất):
Performance[edit][edit]So sánh hiệu suất của các triển khai Python khác nhau trên khối lượng công việc không phải là số lượng (tổ hợp) được trình bày tại Euroscipy '13. [162] Hiệu suất của Python so với các ngôn ngữ lập trình khác cũng được đánh dấu bằng trò chơi điểm chuẩn ngôn ngữ máy tính. [163] Development[edit][edit]Sự phát triển của Python được thực hiện phần lớn thông qua quy trình đề xuất tăng cường Python (PEP), cơ chế chính để đề xuất các tính năng mới lớn, thu thập đầu vào của cộng đồng về các vấn đề và ghi lại các quyết định thiết kế Python. [164] Phong cách mã hóa Python được bao phủ trong PEP & NBSP; 8. [165] PEP nổi bật được xem xét và nhận xét bởi cộng đồng Python và Hội đồng chỉ đạo. [164] Tăng cường ngôn ngữ tương ứng với sự phát triển của việc thực hiện tham chiếu CPython. Danh sách gửi thư Python-Dev là diễn đàn chính để phát triển ngôn ngữ. Các vấn đề cụ thể ban đầu được thảo luận trong Trình theo dõi Bug Roundup được tổ chức tại Quỹ. [166] Năm 2022, tất cả các vấn đề và thảo luận đã được di chuyển sang GitHub. [167] Sự phát triển ban đầu diễn ra trên kho lưu trữ mã nguồn tự lưu trữ chạy Mercurial, cho đến khi Python chuyển đến GitHub vào tháng 1 năm 2017. [168] Các bản phát hành công khai của CPYThon có ba loại, được phân biệt theo phần của số phiên bản được tăng lên:
Nhiều alpha, beta và candidates phát hành cũng được phát hành dưới dạng xem trước và để thử nghiệm trước khi 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, nhưng chúng thường bị trì hoãn nếu mã chưa sẵn sàng. Nhóm phát triển của Python giám sát trạng thái của mã bằng cách chạy bộ thử nghiệm đơn vị lớn trong quá trình phát triển. [174] Hội nghị học thuật lớn về Python là Pycon. Ngoài ra còn có các chương trình cố vấn Python đặc biệt, chẳng hạn như Pyladies. Python & nbsp; 3.10 DEVERATED 31 (sẽ được loại bỏ trong Python & NBSP; 3.12; có nghĩa là các phần mở rộng Python [175] cần được sửa đổi sau đó), [176] và thêm mô hình khớp với ngôn ngữ. [177]Trình tạo tài liệu API [Chỉnh sửa][edit]Các công cụ có thể tạo tài liệu cho API Python bao gồm PYDOC (có sẵn như là một phần của thư viện tiêu chuẩn), Sphinx, PDOC và Fork, Doxygen và Graphviz, trong số những người khác. [178] Naming[edit][edit]Tên của Python có nguồn gốc từ nhóm hài kịch Anh Monty Python, người mà nhà sáng tạo Python Guido Van Rossum rất thích khi phát triển ngôn ngữ. Các tài liệu tham khảo Monty Python xuất hiện thường xuyên trong mã Python và văn hóa; [179] Ví dụ, các biến số metasyntactic thường được sử dụng trong văn học Python là thư rác và trứng thay vì foo và thanh truyền thống. [179] [180] Tài liệu Python chính thức cũng chứa các tài liệu tham khảo khác nhau về các thói quen Monty Python. [181] [182] Tiền tố py- được sử dụng để chỉ ra rằng một cái gì đó có liên quan đến Python. Ví dụ về việc sử dụng tiền tố này trong tên của các ứng dụng hoặc thư viện Python bao gồm pygame, liên kết SDL với Python (thường được sử dụng để tạo trò chơi); Pyqt và pygtk, liên kết qt và gtk với python tương ứng; và Pypy, một triển khai Python ban đầu được viết bằng Python. Popularity[edit][edit]Kể từ năm 2003, Python đã liên tục xếp hạng trong 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, trong tháng 10 & NBSP; 2021, đây là ngôn ngữ phổ biến nhất (trước Java và C). [183] Nó đã được chọn ngôn ngữ lập trình của năm (cho "mức xếp hạng cao nhất trong một năm") trong năm 2007, 2010, 2018 và 2020 (ngôn ngữ duy nhất làm như vậy bốn lần [184]). [185] Một nghiên cứu thực nghiệm cho thấy các ngôn ngữ kịch bản, chẳng hạn như Python, hiệu quả hơn các ngôn ngữ thông thường, như C và Java, cho các vấn đề lập trình liên quan đến thao tác chuỗi và tìm kiếm trong từ điển, và xác định rằng mức tiêu thụ bộ nhớ thường "tốt hơn Java và không Tệ hơn nhiều so với C hoặc C ++ ". [186] Các tổ chức lớn sử dụng Python bao gồm Wikipedia, Google, [187] Yahoo!, [188] Cern, [189] NASA, [190] Facebook, [191] Amazon, Instagram, [192] Spotify, [193] và một số thực thể nhỏ hơn như ILM [194] và Ita. [195] Trang web mạng tin tức xã hội Reddit được viết chủ yếu bằng Python. [196] Uses[edit][edit]Python có thể phục vụ như một ngôn ngữ kịch bản cho các ứng dụng web, ví dụ: thông qua mod_wsgi cho máy chủ web Apache. [197] Với giao diện Gateway máy chủ web, API tiêu chuẩn đã phát triển để tạo điều kiện cho các ứng dụng này. Các khung web như Django, Pylons, Pyramid, Turbogears, Web2py, Tornado, Flask, Chai và Zope Hỗ trợ các nhà phát triển trong việc thiết kế và bảo trì các ứng dụng phức tạp. PYJS và Ironpython có thể được sử dụng để phát triển phía máy khách của các ứng dụng dựa trên AJAX. SQLalchemy có thể được sử dụng như một bản đồ dữ liệu cho cơ sở dữ liệu quan hệ. Twisted là một khung để giao tiếp chương trình giữa các máy tính và được sử dụng (ví dụ) bằng Dropbox. Các thư viện như Numpy, Scipy và Matplotlib cho phép sử dụng hiệu quả Python trong điện toán khoa học, [198] [199] với các thư viện chuyên dụng như Biopython và Astropy cung cấp chức năng cụ thể về miền. Sagemath là một hệ thống đại số máy tính với giao diện máy tính xách tay có thể lập trình trong Python: thư viện của nó bao gồm nhiều khía cạnh của toán học, bao gồm đại số, tổ hợp, toán học số, lý thuyết số và tính toán. [200] OpenCV có các ràng buộc python với một bộ tính năng phong phú để nhìn thấy tầm nhìn và xử lý hình ảnh. [201] Python thường được sử dụng trong các dự án trí tuệ nhân tạo và các dự án học máy với sự trợ giúp của các thư viện như Tensorflow, Keras, Pytorch và Scikit-Learn. [202] [203] [204] [205] Là ngôn ngữ kịch bản với kiến trúc mô -đun, cú pháp đơn giản và các công cụ xử lý văn bản phong phú, Python thường được sử dụng để xử lý ngôn ngữ tự nhiên. [206] Python cũng có thể được sử dụng để tạo trò chơi, với các thư viện như Pygame, có thể tạo ra các trò chơi 2D. Python đã được nhúng thành công vào nhiều sản phẩm phần mềm như một ngôn ngữ kịch bản, bao gồm trong phần mềm phương thức phần tử hữu hạn như ABAQUS, các nhà mô hình tham số 3D như Freecad, các gói hoạt hình 3D như 3DS Max, Blender, Cinema 4D, Lightwave, Houdini, Maya, Modo , MotionBuilder, SoftImage, Nhà soạn nhạc hiệu ứng hình ảnh Nuke, các chương trình hình ảnh 2D như Gimp, [207] Inkscape, Scribus và Paint Shop Pro, [208] và các chương trình ký hiệu âm nhạc như ScoreWriter và Capella. Trình gỡ lỗi GNU sử dụng Python như một máy in khá để hiển thị các cấu trúc phức tạp như các thùng chứa C ++. ESRI quảng bá Python là lựa chọn tốt nhất để viết kịch bản trong ArcGIS. [209] Nó cũng đã được sử dụng trong một số trò chơi video, [210] [211] và đã được nhận làm đầu tiên trong ba ngôn ngữ lập trình có sẵn trong Google App Engine, hai ngôn ngữ còn lại là Java và Go. [212] Nhiều hệ điều hành bao gồm Python như một thành phần tiêu chuẩn. Nó vận chuyển với hầu hết các bản phân phối Linux, [213] Amigaos 4 (sử dụng Python & NBSP; 2.7), FreeBSD (như một gói), NetBSD và OpenBSD (làm gói) và có thể được sử dụng từ dòng lệnh (thiết bị đầu cuối). Nhiều phân phối Linux sử dụng các trình cài đặt được viết bằng Python: Ubuntu sử dụng trình cài đặt phổ biến, trong khi Red Hat Linux và Fedora Linux sử dụng trình cài đặt Anaconda. Gentoo Linux sử dụng Python trong hệ thống quản lý gói, Portage. Python được sử dụng rộng rãi trong ngành bảo mật thông tin, bao gồm cả phát triển khai thác. [214] [215] Hầu hết các phần mềm đường cho một máy tính xách tay cho mỗi đứa trẻ XO, bây giờ [khi?] Được phát triển tại Sugar Labs, được viết bằng Python. [216] Dự án máy tính một bảng Raspberry Pi đã áp dụng Python làm ngôn ngữ lập trình người dùng chính.when?] developed at Sugar Labs, is written in Python.[216] The Raspberry Pi single-board computer project has adopted Python as its main user-programming language. when?] developed at Sugar Labs, is written in Python.[216] The Raspberry Pi single-board computer project has adopted Python as its main user-programming language. LibreOffice bao gồm Python và dự định thay thế Java bằng Python. Nhà cung cấp kịch bản Python của nó là một tính năng cốt lõi [217] kể từ phiên bản 4.0 từ ngày 7 tháng 2 năm 2013. Ngôn ngữ chịu ảnh hưởng của Python [Chỉnh sửa][edit]Thiết kế và triết học của Python đã ảnh hưởng đến nhiều ngôn ngữ lập trình khác:
Thực tiễn phát triển của Python cũng đã được mô phỏng bởi các ngôn ngữ khác. Ví dụ, thực tiễn yêu cầu một tài liệu mô tả lý do và các vấn đề xung quanh, một sự thay đổi đối với ngôn ngữ (trong Python, PEP) cũng được sử dụng trong TCL, [227] Erlang, [228] và Swift. [229] Xem thêm [sửa][edit]
References[edit][edit]
Sources[edit][edit]
Đọc thêm [Chỉnh sửa][edit]
Liên kết bên ngoài [Chỉnh sửa][edit]
Các tính năng của lập trình Python là gì?Các tính năng và lợi thế của Python... Dễ dàng mã. Python là một ngôn ngữ lập trình cấp độ rất cao, nhưng nó là một cách dễ dàng để học. .... Dễ đọc. Mã Python trông giống như những từ tiếng Anh đơn giản. .... Miễn phí và nguồn mở. .... Thư viện tiêu chuẩn mạnh mẽ. .... Giải thích. .... Cầm tay. .... Hướng đối tượng và định hướng thủ tục. .... Extensible.. Lịch sử Python và Python là gì?Python đã được Guido Van Rossum hình thành vào cuối những năm 1980 tại Centrum Wiskunde & Informatica (CWI) ở Hà Lan như là người kế thừa ngôn ngữ lập trình ABC, đượ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.Việc thực hiện nó bắt đầu vào tháng 12 năm 1989. 5 tính năng chính của ngôn ngữ lập trình Python là gì?Trong blog này, chúng tôi đã học được những tính năng chính của Python.Python là một trình thông dịch, ngôn ngữ lập trình tự động và định hướng đối tượng.Nó cũng miễn phí, dễ học, dễ sử dụng và ngôn ngữ di động. Tóm tắt chương trình Python là gì?Python là một ngôn ngữ lập trình cấp cao được giải thích, hướng đối tượng với ngữ nghĩa động được phát triển bởi Guido Van Rossum.Nó ban đầu được phát hành vào năm 1991. Được thiết kế để trở nên dễ dàng cũng như niềm vui, cái tên "Python" là một cái gật đầu với nhóm hài kịch Anh Monty Python.an interpreted, object-oriented, high-level programming language with dynamic semantics developed by Guido van Rossum. It was originally released in 1991. Designed to be easy as well as fun, the name "Python" is a nod to the British comedy group Monty Python.an interpreted, object-oriented, high-level programming language with dynamic semantics developed by Guido van Rossum. It was originally released in 1991. Designed to be easy as well as fun, the name "Python" is a nod to the British comedy group Monty Python. |