Python là ngôn ngữ lập trình không còn xa lại gì với dân IT. Với ngôn ngữ Python bạn có thể làm được nhiều điều khác nhau, như xây dựng web, application hay xây dựng các ứng dụng trí tuệ nhân tạo. Bên cạnh đó, ngôn ngữ này cũng còn khá nhiều “bí ẩn” mà các newbie hay cả những “lão làng” cần khám phá. Cùng theo dõi bài viết dưới đây để tìm hiểu rõ hơn các câu hỏi thường gặp của ngôn ngữ Python nhé!

Thông tin chung về Python

Python là gì?

Python là ngôn ngữ lập trình hướng đối tượng cấp cao, được sử dụng phổ biến và phù hợp với người mới bắt đầu. Các lập trình viên sử dụng Python vì nó hiệu quả, dễ học và có thể chạy trên nhiều nền tảng khác nhau.

Đặc biệt, ngôn ngữ Python có thể kết hợp với các modules, exceptions, dynamic typing, kiểu dữ liệu dynamic và các class. Ngoài lập trình hướng đối tượng, nó còn hỗ trợ các mô hình lập trình khác như lập trình thủ tục và lập trình hàm.

Python là gì?

Python là gì?

Python có nhiều tính năng tuyệt vời và cú pháp tương đối đơn giản. Nó có thể được mở rộng bằng C hoặc C++, cung cấp nhiều lệnh gọi hệ thống, thư viện và đa dạng cửa số hệ thống. Cuối cùng, Python có thể hoạt động trên nhiều nền tảng Unix, bao gồm Linux, macOS và Windows.

Python Software Foundation là gì?

Python Software Foundation là một tổ chức phi lợi nhuận độc lập, là chủ sở hữu tài sản trí tuệ của phiên bản Python 2.1 trở lên. Mục tiêu của PSF là cải tiến công nghệ mã nguồn mở liên quan đến ngôn ngữ lập trình Python và khuyến khích việc sử dụng Python.

Sử dụng Python có bị giới hạn bản quyền không?

Bạn có thể làm bất cứ điều gì mình muốn với source, miễn là bạn để nguyên bản quyền và hiển thị các bản quyền đó trong bất kỳ tài liệu nào về Python mà bạn sản xuất.

Nếu tuân thủ các quy tắc bản quyền, bạn có thể sử dụng Python cho mục đích thương mại, bán các bản sao của Python ở dạng source hoặc binary form (đã sửa đổi hoặc chưa được sửa đổi) hoặc bán các sản phẩm kết hợp Python ở một số dạng.

Tại sao Python lại được tạo ra ngay từ đầu?

Dưới đây là một đoạn tóm tắt ngắn gọn về lý do Python được ra đời dưới chia sẻ của Guido van Rossum:

“Tôi đã có nhiều kinh nghiệm trong việc triển khai một ngôn ngữ thông dịch trong nhóm ABC tại CWI. Nhờ đó, tôi đã học được rất nhiều về việc thiết kế ngôn ngữ. Đây là nguồn gốc của nhiều tính năng Python, bao gồm việc sử dụng thụt lề để nhóm câu lệnh và các kiểu dữ liệu cấp rất cao (mặc dù tất cả các chi tiết đều khác nhau trong Python).

Tôi không những hiểu về ngôn ngữ ABC mà còn rất thích tính năng của nó. Nhưng nó lại không được mở rộng để khắc phục các nhược điểm. Việc thiếu khả năng mở rộng là một trong những vấn đề lớn nhất mà ngôn ngữ này mắc phải.

Guido van Rossum - Người tạo ra Python

Guido van Rossum – Người tạo ra Python

Thực ra, tôi đã có kinh nghiệm với việc sử dụng Modula-2 + và đã làm việc với các nhà thiết kế của Modula-3 cũng như các đọc báo cáo về Modula-3. Những cú pháp và ngữ nghĩa cho các exceptions cũng như một số tính năng Python khác đều được bắt nguồn từ Modula-3.

Tôi đang làm việc trong nhóm hệ điều hành phân tán Amoeba tại CWI. Chúng tôi cần một cách để quản trị hệ thống hiệu quả hơn là viết chương trình C hoặc tập lệnh shell Bourne, vì Amoeba có giao diện system call riêng, không thể dễ dàng truy cập được từ Bourne shell. Kinh nghiệm xử lý lỗi trong Amoeba khiến tôi nhận thức được tầm quan trọng của các exception như một tính năng của ngôn ngữ lập trình.

Tôi chợt nhận ra rằng cần một ngôn ngữ kịch bản có cú pháp như ABC nhưng có quyền truy cập vào các system call của hệ thống Amoeba sẽ đáp ứng được nhu cầu. Tôi nhận ra rằng thật ngu ngốc khi viết một ngôn ngữ dành riêng cho Amoeba, vì vậy tôi quyết định rằng mình cần một ngôn ngữ có thể mở rộng được.

Do đó, trong những ngày lễ giáng sinh năm 1989, tôi đã có rất nhiều thời gian rảnh. Và tôi quyết định thử tìm hiểu nó. Trong suốt những năm tiếp theo, tôi cũng dành nhiều thời gian riêng của mình để nghiên cứu về nó. Tuy nhiên, trong khoảng thời gian đó, Python đã được sử dụng trong dự án Amoeba với sự thành công ngày càng tăng và phản hồi từ các đồng nghiệp đã khiến tôi bổ sung nhiều cải tiến ban đầu.”

Python phù hợp với điều gì?

Python là một ngôn ngữ lập trình bậc cao, có thể được sử dụng để giải quyết nhiều lớp khác nhau của các vấn đề.

Ngôn ngữ này đi kèm với một thư viện tiêu chuẩn lớn bao gồm các lĩnh vực như xử lý chuỗi (biểu thức chính quy, Unicode, tính toán sự khác biệt giữa các tệp), giao thức internet (HTTP, FTP, SMTP, XML-RPC, POP, IMAP, lập trình CGI), kỹ thuật phần mềm (kiểm tra đơn vị, ghi nhật ký, lập hồ sơ, phân tích cú pháp mã Python) và giao diện hệ điều hành (system calls, filesystems, TCP/IP sockets)

Lược đồ đánh số phiên bản Python hoạt động như thế nào?

Các phiên bản Python được đánh số A.B.C hoặc A.B. Trong đó:

  • A là số phiên bản chính, chỉ được tăng lên khi có những thay đổi thực sự lớn trong ngôn ngữ.
  • B là số phiên bản nhỏ, được tăng lên để phản ánh rằng có ít thay đổi đáng kể hơn
  • C là mức vi mô – mức này được tăng lên cho mỗi lần phát hành bản sửa lỗi.
Cách đánh số cho các version

Cách đánh số cho các version

Tuy nhiên, không phải tất cả bản phát hành đều là bản sửa lỗi. Trong quá trình hoàn thiện một bản phát hành chính mới, một loạt các bản phát hành được tạo ra, được ký hiệu là bản alpha, beta hoặc release candidate (giai đoạn phát hành nếu không phát hiện thêm lỗi nghiêm trọng nào nữa)

  • Alphas là những bản phát hành sớm mà giao diện vẫn chưa được hoàn thiện; không có gì bất ngờ khi thấy sự thay đổi giao diện giữa hai bản phát hành alpha. 
  • Betas ổn định hơn, giữ nguyên các giao diện hiện có nhưng có thể thêm các modules mới và các release candidates bị đóng băng, không thực hiện thay đổi nào trừ khi cần thiết để sửa các lỗi nghiêm trọng.

Phiên bản Alpha, beta và release candidate có thêm một hậu tố.

  • Hậu tố cho phiên bản alpha là “aN” cho một số nhỏ N
  • Hậu tố cho một phiên bản beta là “bN” cho một số nhỏ N
  • Hậu tố cho một phiên bản release candidates là “rcN” cho một số nhỏ N.

Nói cách khác, phiên bản có nhãn 2.0aN có trước, đến phiên bản có nhãn 2.0bN, rồi đến phiên bản có nhãn 2.0rcN và cuối cùng là các phiên bản có nhãn 2.0.

Bạn cũng có thể tìm thấy một số phiên bản có hậu tố “+”, ví dụ: “2,2+”. Đây là những phiên bản chưa được phát hành, được xây dựng trực tiếp từ kho phát triển CPython. 

Trên thực tế, sau khi một bản phát hành nhỏ cuối cùng được thực hiện, phiên bản này sẽ được tăng lên thành phiên bản thứ yếu tiếp theo, trở thành phiên bản “a0”, ví dụ: “2,4a0”.

Làm cách nào để lấy bản sao nguồn Python?

Bạn luôn có thể tìm thấy phiên bản mới nhất của mã nguồn Python từ python.org, tại: https://www.python.org/downloads/.

Các nguồn phát triển mới nhất có thể lấy tại https://github.com/python/cpython/.

Bản phân phối nguồn là một tệp tar được nén bao gồm toàn bộ mã nguồn C, tài liệu có định dạng Sphinx, module thư viện Python, chương trình ví dụ và một số phần mềm hữu ích có thể phân phối tự do. Mã nguồn sẽ tự biên dịch và chạy ngay lập tức trên hầu hết các nền tảng UNIX

Làm cách nào để xem các tài liệu về Python?

Tài liệu tiêu chuẩn cho phiên bản Python hiện tại có sẵn tại https://docs.python.org/3/.

Các phiên bản PDF, văn bản thuần túy và HTML có thể tải xuống cũng có sẵn tại https://docs.python.org/3/download.html.

Cách nhận tài liệu Python

Cách nhận tài liệu Python

Tài liệu được viết bằng reStructuredText và được xử lý bởi công cụ tài liệu Sphinx. Nguồn reStructuredText là một phần của phân phối source Python.

Hướng dẫn cho người chưa có kinh nghiệm lập trình

Có rất nhiều hướng dẫn và sách có sẵn về Python như The Python Tutorial hoặc Beginner’s Guide to find information for beginning Python programmers.

Python có nhóm hay các mail để thông báo tin tức không?

Có một nhóm về tin tức và một danh sách gửi thư, đó là python-list. Nhóm tin và danh sách e-mail này được kết nối với nhau – nếu bạn có thể đọc tin tức trong nhóm thì không cần đăng ký vào danh sách gửi thư.

Làm cách nào để nhận phiên bản thử nghiệm bản beta?

Bản phát hành alpha và beta có sẵn tại https://www.python.org/downloads/.

Tất cả các bản phát hành được thông báo trên trang tin tức comp.lang.python, comp.lang.python.anosystem và trên trang chủ Python tại https://www.python.org/; một nguồn tin RSS có sẵn.

Làm cách nào để gửi báo cáo lỗi và bản sửa lỗi?

Để báo cáo lỗi hoặc gửi bản sửa lỗi, vui lòng sử dụng cài đặt Roundup tại https://bugs.python.org/.

Đặc biệt, bạn phải có tài khoản Roundup để báo cáo lỗi để chúng tôi có thể liên hệ lại với bạn và hỏi thêm một số thông tin. Nó cũng sẽ cho phép Roundup gửi cho bạn các bản cập nhật khi chúng tôi xử lý lỗi của bạn. 

Làm cách nào để gửi báo cáo lỗi và bản sửa lỗi cho Python?

Làm cách nào để gửi báo cáo lỗi và bản sửa lỗi cho Python?

Nếu trước đây bạn đã từng SourceForge để báo cáo lỗi cho Python, bạn có thể lấy mật khẩu Roundup của mình thông qua quy trình đặt lại mật khẩu của Roundup.

Có bài báo nào đã xuất bản về Python để có thể tham khảo không?

Bạn có thể tham khảo bài báo đầu tiên về Python được viết vào năm 1991 của Guido van Rossum và Jelke de Boer: “Kiểm tra tương tác máy chủ từ xa bằng ngôn ngữ lập trình Python”, CWI hàng quý, Tập 4, Ấn bản 4 (tháng 12 năm 1991), Amsterdam, trang 283–303.

Có sách nào về Python không?

Có rất nhiều sách về Pỵthon đã được xuất bản. Bạn có thể xem tại https://wiki.python.org/moin/PythonBooks để biết danh sách.

Trụ sở chính của Python được đặt ở đâu trên thế giới?

Cơ sở hạ tầng của dự án Python được đặt ở khắp nơi trên thế giới và được quản lý bởi Nhóm cơ sở hạ tầng Python.

Tại sao lại gọi là Python?

Khi bắt đầu triển khai Python, Guido van Rossum cũng đang đọc các kịch bản của “Monty Python’s Flying Circus”, một loạt phim hài của BBC từ những năm 1970. Van Rossum nghĩ rằng anh ấy cần một cái tên ngắn gọn, độc đáo và hơi bí ẩn, vì vậy anh ấy quyết định gọi ngôn ngữ này là Python.

Python trong thế giới thực

Python ổn định như thế nào?

Các bản phát hành mới với tính ổn định được ra mắt khoảng 6 đến 18 tháng một lần kể từ năm 1991 và điều này vẫn được duy trì cho đến nay. Kể từ phiên bản 3.9 trở đi, cứ 12 tháng, Python sẽ có một bản phát hành mới (PEP 602).

Thêm vào đó, tính ổn ổn định của các bản phát hành cũng đang được dần dần tăng lên bởi các nhà phát triển đã phát hành các bản sửa lỗi của phiên bản cũ hơn.

Tính ổn định của Python

Tính ổn định của ngôn ngữ Python

Bạn luôn có thể tìm thấy các bản phát hành ổn định mới nhất trên trang tải xuống Python. Có hai phiên bản Python sẵn sàng sản xuất: 2.x và 3.x. Phiên bản được khuyến nghị là 3.x, được hỗ trợ bởi hầu hết các thư viện được sử dụng rộng rãi. Mặc dù 2.x vẫn được sử dụng rộng rãi nhưng nó không được duy trì nữa.

Bạn luôn có thể tìm thấy các bản phát hành ổn định mới nhất trên trang tải xuống Python. Có hai phiên bản Python sẵn sàng sản xuất: 2.x và 3.x. Phiên bản được khuyến nghị là 3.x, được hỗ trợ bởi hầu hết các thư viện được sử dụng rộng rãi. Mặc dù 2.x vẫn được sử dụng rộng rãi nhưng nó không được duy trì nữa.

Có bao nhiêu người đang sử dụng Python?

Có thể có hàng triệu người dùng, mặc dù rất khó để có được con số chính xác. Python có sẵn để tải xuống miễn phí, vì vậy không có doanh thu, nó có sẵn từ nhiều trang web khác nhau và được đóng gói với nhiều bản phân phối Linux, vì vậy số liệu thống kê tải xuống cũng không nói lên được vấn đề

Nhóm tin comp.lang.python hoạt động rất tích cực, nhưng không phải tất cả người dùng Python đều đăng lên nhóm hoặc là đọc nó.

Có dự án quan trọng nào được thực hiện bằng Python không?

Xem thêm tại đây để biết danh sách các dự án đã sử dụng Python. Bạn có thể tham khảo thêm các doanh nghiệp và tổ chức đóng góp bằng cách xem quá trình của các hội nghị Python trước đó.

Quản lý danh sách gửi thư Mailman và máy chủ ứng dụng Zope đều là những dự án Python nổi tiếng. Bên cạnh đó, Python cũng được sử dụng trong một số ứng dụng quản trị hệ thống và trình cài đặt của các bản phân phối Linux, nổi bật nhất là Red Hat. Python cũng là ngôn ngữ lập trình được sử dụng nội bộ bởi Google, Yahoo và Lucasfilm Ltd.

Những nhà phát triển mới nào được đề xuất cho Python trong tương lai?

PEP là tài liệu được thiết kế để mô tả một tính năng mới được đề xuất cho Python, cung cấp đặc điểm kỹ thuật ngắn gọn và cơ sở lý luận. Bạn có thể tìm kiếm tiêu đề “Lịch phát hành Python X.Y”, trong đó X.Y là phiên bản chưa được phát hành công khai để biết thêm thông tin.

Đây có phải là ngôn ngữ tốt cho các lập trình viên mới bắt đầu?

Đúng vậy. Python chính xác là ngôn ngữ tuyệt vời cho các lập trình viên mới bắt đầu. Khi bắt đầu bước vào đại học, sinh viên thường được dạy các ngôn ngữ có kiểu thủ tục và kiểu tĩnh như Pascal, C, một tập hợp con của C ++ hoặc Java. Tuy nhiên, bạn cũng có thể học ngôn ngữ Python đầu tiên. Python có cú pháp rất đơn giản, nhất quán và có thư viện tiêu chuẩn lớn.

Hơn nữa, việc sử dụng Python ngay từ ban đầu giúp sinh viên tập trung vào các kỹ năng lập trình quan trọng như phân rã vấn đề và thiết kế kiểu dữ liệu. Với Python, sinh viên có thể nhanh chóng hiểu được các khái niệm cơ bản như vòng lặp và thủ tục. Thậm chí, bạn còn có thể bắt đầu làm việc với các đối tượng do người dùng xác định ngay khi mới bắt đầu học.

Đối với một sinh viên chưa bao giờ lập trình trước đây, việc sử dụng một ngôn ngữ được nhập tĩnh có vẻ không dễ dàng. Nó sẽ phát sinh thêm nhiều vấn đề phức tạp. Vì vậy, bạn cần phải học chậm lại để nắm vững kiến thức. 

Python có phải là một ngôn ngữ tốt cho các lập trình viên mới bắt đầu?

Python có phải là một ngôn ngữ tốt cho các lập trình viên mới bắt đầu?

Các sinh viên nên học cách tư duy như một chiếc máy tính, phân tích các vấn đề, thiết kế các giao diện nhất quán và đóng gói dữ liệu. Mặc dù việc học cách sử dụng ngôn ngữ được nhập tĩnh là quan trọng về lâu dài, nhưng nó không nhất thiết phải học ngay trong những bài lập trình đầu tiên.

Nhiều khía cạnh khác của Python làm cho nó trở thành một ngôn ngữ nên học đầu tiên. Giống như Java, Python có một thư viện tiêu chuẩn lớn để sinh viên có thể bắt đầu thực hiện các dự án lập trình ngay khi đang học.

Bằng cách sử dụng thư viện tiêu chuẩn, sinh viên có thể dễ dàng làm việc trên các ứng dụng thực tế khi học các nguyên tắc cơ bản của lập trình. Sử dụng thư viện tiêu chuẩn cũng hướng dẫn sinh viên sử dụng lại code. Các modules của bên thứ ba như PyGame cũng hữu ích trong việc mở rộng phạm vi tiếp cận của sinh viên.

Trình thông dịch tương tác của Python cho phép sinh viên kiểm tra các tính năng của ngôn ngữ khi họ đang lập trình. Khi sử dụng Python, bạn có thể vừa mở cửa sổ có trình thông dịch đang chạy và vừa nhập source chương trình ở cửa sổ khác. Nếu không biết cách làm, bạn có thể tham khảo hướng dẫn dưới đây:

>>> L = []

>>> dir(L) 

[‘__add__’, ‘__class__’, ‘__contains__’, ‘__delattr__’, ‘__delitem__’,

‘__dir__’, ‘__doc__’, ‘__eq__’, ‘__format__’, ‘__ge__’,

‘__getattribute__’, ‘__getitem__’, ‘__gt__’, ‘__hash__’, ‘__iadd__’,

‘__imul__’, ‘__init__’, ‘__iter__’, ‘__le__’, ‘__len__’, ‘__lt__’,

‘__mul__’, ‘__ne__’, ‘__new__’, ‘__reduce__’, ‘__reduce_ex__’,

‘__repr__’, ‘__reversed__’, ‘__rmul__’, ‘__setattr__’, ‘__setitem__’,

‘__sizeof__’, ‘__str__’, ‘__subclasshook__’, ‘append’, ‘clear’,

‘copy’, ‘count’, ‘extend’, ‘index’, ‘insert’, ‘pop’, ‘remove’,

‘reverse’, ‘sort’]

>>> [d for d in dir(L) if ‘__’ not in d]

[‘append’, ‘clear’, ‘copy’, ‘count’, ‘extend’, ‘index’, ‘insert’, ‘pop’, ‘remove’, ‘reverse’, ‘sort’]

>>> help(L.append)

Help on built-in function append:

append(…)

    L.append(object) -> None — append object to end

>>> L.append(1)

>>> L

[1]

Ngoài ra, các IDE cũng rất tốt cho Python. IDLE được viết bằng Python bằng Tkinter. PythonWin cũng là một IDE dành riêng cho Windows. Người dùng Emacs sẽ rất vui khi biết rằng có một chế độ Python rất tốt cho Emacs. 

Tất cả các môi trường lập trình này đều có các tính năng như đánh dấu cú pháp, tự động thụt lề và truy cập vào trình thông dịch tương tác trong khi viết. Tham khảo wiki Python để biết danh sách đầy đủ các môi trường chỉnh sửa Python.

Như vậy, bài viết đã tổng hợp giúp bạn những thông tin cần thiết về Python. Hy vọng với những kiến thức ở trên, bạn có thể nắm chắc hơn về ngôn ngữ phổ biến này.