Ebooks, Audobooks and Classical Music from Liber Liber
a b c d e f g h i j k l m n o p q r s t u v w x y z





Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Python (ngôn ngữ lập trình) – Wikipedia tiếng Việt

Python (ngôn ngữ lập trình)

Bách khoa toàn thư mở Wikipedia

  Python

Biểu trưng Python
Phát triển: Python Software Foundation
Phiên bản mới nhất: 2.5 / 19 tháng 9, 2006
Hệ điều hành: đa nền
Thể loại: Ngôn ngữ lập trình
Giấy phép: Giấp phép của Python Software Foundation
Trang chủ: www.python.org

Python là một ngôn ngữ lập trình thông dịch do Guido van Rossum tạo ra năm 1990. Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động; do vậy nó gần giống như Perl, Ruby, Scheme, Smalltalk, và Tcl. Python được phát triển trong một dự án mã mở, do tổ chức phi lợi nhuận Python Software Foundation quản lý. Bản mới nhất hiện nay là Python 2.5 được phát hành vào 19 tháng 9, 2006.

Theo đánh giá của Eric S. Raymond, 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. 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, như nhận định của chính Guido van Rossum trong một bài phỏng vấn ông.

Ban đầu, Python được phát triển để chạy trên nền Unix. Nhưng rồi theo thời gian, nó đã “bành trướng” sang mọi hệ điều hành từ DOS đến Mac OS, OS/2, Windows, Linux và các hệ điều hành khác thuộc họ Unix. Mặc dù sự phát triển của Python có sự đóng góp của rất nhiều cá nhân, nhưng Guido van Rossum hiện nay vẫn là tác giả chủ yếu của Python. Ông giữ vai trò chủ chốt trong việc quyết định hướng phát triển của Python.

Mục lục

[sửa] Lịch sử

Sự phát triển Python đến nay có thể chia làm các giai đoạn:

  • Python 1: bao gồm các bản phát hành 1.x. Giai đoạn này, kéo dài từ đầu đến cuối thập niên 1990. Từ năm 1990 đến 1995, Guido làm việc tại CWI (Centrum voor Wiskunde en Informatica - Trung tâm Toán-Tin học) tại Amsterdam, Hà Lan). Vì nguyên nhân này, các phiên bản Python đầu tiên đều do CWI phát hành. Phiên bản cuối cùng phát hành tại CWI là 1.2.
    • Vào năm 1995, Guido chuyển sang Corporation for National Research Initiatives (CNRI) ở Reston, Virginia. Tại đây, ông phát hành một số phiên bản khác. Python 1.6 là phiên bản cuối cùng phát hành tại CNRI.
    • Sau bản phát hành 1.6, Guido rời bỏ CNRI để làm việc với các lập trình viên chuyên viết phần mềm thương mại. Tại đây, ông có ý tưởng sử dụng Python với các phần mềm tuân theo chuẩn GPL. Sau đó, CNRI và Free Software Foundation (FSF) đã cùng nhau hợp tác để làm bản quyền Python phù hợp với GPL. Cùng năm đó, Guido được nhận giải thưởng FSF Award for the Advancement of Free Software.
    • Phiên bản 1.6.1 ra đời sau đó là phiên bản đâu tiền tuân theo bản quyền GPL. Tuy nhiên, bản này hoàn toàn giống bản 1.6, trừ một số sửa lỗi cần thiết.
  • Python 2: vào năm 2000, Guido và nhóm phát triển Python dời đến BeOpen.com và thành lập BeOpen PythonLabs team. Phiên bản Python 2.0 được phát hành tại đây. Sau khi phát hành Python 2.0, Guido và các thành viên PythonLabs gia nhập Digital Creations.
    • Python 2.1 ra đời kế thừa từ Python 1.6.1 và Python 2.0. Bản quyền của phiên bản này được đổi thành Python Software Foundation License. Từ thời điểm này trở đi, Python thuộc sở hữu của Python Software Foundation (PSF), một tổ chức phi lợi nhuận được thành lập theo mẫu Apache Software Foundation.
  • Python 3: Về sự phát triển của Python trong tương lai, các nhà phát triển vẫn đang thảo luận về phiên bản mới: Python 3.0 (dự án gọi là Python 3000 hoặc Py3K). Dự kiến, dòng 3.x sẽ không hoàn toàn tương thích với dòng 2.x. Nhóm phát triển cho biết sẽ lấp những chỗ hở của ngôn ngữ. Nguyên tắc chủ đạo để phát triển Python 3.x là "bỏ cách làm việc cũ nhằm hạn chế trùng lặp về mặt chức năng của Python". Tuy nhiên, cho đến nay, vẫn chưa có kế hoạch cụ thể để phát triển Python 3.0, dù vậy, PEP (Python Enhancement Proposal) trong đó mô tả chi tiết các thay đổi trong Python đã có tại http://www.python.org/peps/pep-3000.html.

[sửa] Đặc điểm

[sửa] Dễ học, dễ đọc

Python được thiết kế để trở thành một ngôn ngữ dễ học, mã nguồn dễ đọc, bố cục trực quan, dễ hiểu, thể hiện qua các điểm sau:

[sửa] Từ khóa

Python tăng cường sử dụng từ khóa tiếng Anh, hạn chế các kí hiệu và cấu trúc cú pháp so với các ngôn ngữ khác. Python là một ngôn ngữ phân biệt kiểu chữ. Như C/C++, các từ khóa của Python đều ở dạng chữ thường.

[sửa] Khối lệnh

Trong các ngôn ngữ khác, khối lệnh thường được đánh dấu bằng cặp kí hiệu hoặc từ khóa. Ví dụ, trong C/C++, cặp { } được dùng để bao bọc một khối lệnh. Python, trái lại, có một cách rất đặc biệt để tạo khối lệnh, đó là thụt các câu lệnh trong khối vào sâu hơn (về bên phải) so với các câu lệnh của khối lệnh cha chứa nó. Ví dụ, giả sử có đoạn mã sau trong C/C++:

#include <math.h>
//...
delta = b * b – 4 * a * c;
if (delta > 0)
{
   // Khối lệnh mới bắt đầu từ kí tự { đến }
   x1 = (- b + sqrt(delta)) / (2 * a);
   x2 = (- b - sqrt(delta)) / (2 * a);
   printf("Phuong trinh co hai nghiem phan biet:\n");
   printf("x1 = %f; x2 = %f", x1, x2);
}

Đoạn mã trên có thể được viết lại bằng Python như sau:

import math
#...
delta = b * b – 4 * a * c
if delta > 0:
    # Khối lệnh mới, thụt vào đầu dòng
    x1 = (- b + math.sqrt(delta)) / (2 * a)
    x2 = (- b – math.sqrt(delta)) / (2 * a)
    print "Phuong trinh co hai nghiem phan biet:"
    print "x1 = ", x1, "; ", "x2 = ", x2

Ta có thể sử dụng tab hoặc khoảng trống để thụt các câu lệnh vào.

[sửa] Các bản hiện thực

Python được viết từ những ngôn ngữ khác, tạo ra những bản hiện thực khác nhau. Bản hiện thực Python chính, còn gọi 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, BSD, 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, Java virtual machine, 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ó hai hiện thực Python khác: Jython cho môi trường Java và IronPython cho môi trường .NET và Mono.

[sửa] Khả năng mở rộng

Python có thể được mở rộng: nếu ta biết sử dụng C, ta có thể dễ dàng viết và tích hợp vào Python nhiều hàm tùy theo nhu cầu. Các hàm này sẽ trở thành hàm xây dựng sẵn (built-in) của Python. Ta cũng có thể mở rộng chức năng của trình thông dịch, hoặc liên kết các chương trình Python với các thư viện chỉ ở dạng nhị phân (như các thư viện đồ họa do nhà sản xuất thiết bị cung cấp). Hơn thế nữa, ta cũng có thể liên kết trình thông dịch của Python với các ứng dụng viết từ C và sử dụng nó như là một mở rộng hoặc một ngôn ngữ dòng lệnh phụ trợ cho ứng dụng đó.

[sửa] Trình thông dịch

Python là một ngôn ngữ lập trình dạng thông dịch. Ưu điểm của thông dịch là giúp ta tiết kiệm thời gian phát triển ứng dụng vì không cần phải thực hiện biên dịch và liên kết. Trình thông dịch có thể được sử dụng để chạy file script, hoặc cũng có thể được sử dụng một cách tương tác. Ở chế độ tương tác, trình thông dịch Python tương tự shell của các hệ điều hành họ Unix, tại đó, ta có thể nhập vào một biểu thức tại một thời điểm rồi enter, và kết quả thực thi sẽ được hiển thị ngay lập tức. Đặc điểm này rất hữu ích cho người mới học, giúp họ nghiên cứu tính năng của ngôn ngữ; hoặc để các lập trình viên chạy thử mã trong suốt quá trình phát triển phần mềm. Ngoài ra, nó cũng có thể được sử dụng như là một máy tính.

[sửa] Lệnh và cấu trúc điều khiển

Mỗi câu lệnh trong Python nằm trên một dòng mã nguồn. Ta không cần phải kết thúc câu lệnh bằng bất kì kí tự gì. Cũng như các ngôn ngữ khác, Python cũng có các cấu trúc điều khiển. Chúng bao gồm:

  • Cấu trúc rẽ nhánh: cấu trúc if (có thể sử dụng thêm elif hoặc else), dùng để thực thi có điều kiện một khối mã cụ thể.
  • Cấu trúc lặp, bao gồm:
  • Lệnh while: chạy một khối mã cụ thể cho đến khi điều kiện lặp có giá trị false.
  • Vòng lặp for: lặp qua từng phần tử của một dãy, mỗi phần tử sẽ được đưa vào biến cục bộ để sử dụng với khối mã trong vòng lặp.
  • Python cũng có từ khóa class dùng để khai báo lớp (sử dụng trong lập trình hướng đối tượng) và lệnh def dùng để định nghĩa hàm.

[sửa] Hệ thống kiểu dữ liệu

Python sử dụng hệ thống kiểu duck typing, còn gọi là latent typing (hàm nghĩa: ngầm). Có nghĩa là, Python không kiểm tra các ràng buộc về kiểu dữ liệu tại thời điểm dịch, mà là tại thời điểm thực thi. Khi thực thi, nếu một thao tác trên một đối tượng bị thất bại, thì có nghĩa là, đối tượng đó không sử dụng một kiểu thích hợp. Python cũng là một ngôn ngữ định kiểu mạnh. Nó cấm mọi thao tác không hợp lệ, ví dụ cộng một con số vào chuỗi. Sử dụng Python, ta không cần phải khai báo biến. Biến được xem là đã khai báo nếu nó được gán một giá trị lần đầu tiên. Căn cứ vào mỗi lần gán, Python sẽ tự động xác định kiểu dữ liệu của biến. Python có một số kiểu dữ liệu thông dụng sau:

  • int, long: số nguyên
  • float: số thực
  • complex: số phức
  • list: chuỗi có thể thay đổi
  • tuple: chuỗi không thể thay đổi
  • str: chuỗi kí tự không thể thay đổi
  • dict: từ điển
  • set: một tập không xếp theo thứ tự, ở đó, mỗi phần tử chỉ xuất hiện một lần.

Ngoài ra, Python còn có nhiều kiểu dữ liệu khác.

[sửa] Module

Python cho phép chia chương trình thành modules để có thể sử dụng lại trong các chương trình khác. Nó cũng có sẵn một tập hợp các modules chuẩn mà ta có thể sử dụng lại trong chương trình của ta. Các thư viện này cung cấp nhiều thứ, như file I/O, các lời gọi hệ thống, sockets,…

[sửa] Đa năng

Python là một ngôn ngữ lập trình đơn giản nhưng rất hiệu quả. So với Unix shell, Python hỗ trợ các chương trình lớn hơn và cung cấp nhiều cấu trúc hơn. So với C, Python cung cấp nhiều cơ chế kiểm tra lỗi hơn. Vì các lí do đó, Python là một ngôn ngữ lập trình cấp rất cao. Nó cũng có sẵn nhiều kiểu dữ liệu cấp cao, ví dụ như các mảng linh hoạt (flexible arrays) ( ) và từ điển (dictionaries) mà ta phải mất nhiều thời gian để hiện thực trên C. Python cũng thích hợp với các chương trình lớn hơn cả Awk và Perl. Python cũng được sử dụng để lập trình Web. Nó có thể được sử dụng như là một ngôn ngữ kịch bản. Python được thiết kế để có thể nhúng và phục vụ như là một ngôn ngữ kịch bản để tuỳ biến và mở rộng các ứng dụng lớn hơn. Được tích hợp sẵn nhiều công cụ và có một thư viện chuẩn phong phú, Python cho phép người dùng dễ dàng tạo ra các dịch vụ Web, sử dụng các thành phần COM hay CORBA ( ). Nó hỗ trợ các định dạng email, dữ liệu Internet, HTML, XML và các ngôn ngữ đánh dấu khác. Python cũng ứng dụng tất cả các giao thức Internet thông dụng như HTTP, FTP,… Python cung cấp giao tiếp đến hầu hết cơ sở dữ liệu, có khả năng xử lí văn bản, tài liệu hiệu quả, và có thể làm việc tốt với các công nghệ Web khác. Python cũng đặc biệt hiệu quả cho lập trình tính toán khoa học qua các công cụ Python Imaging Library, VTK, MayaVi 3D Visualization Toolkits, Numeric Python, ScientificPython,… Python cũng có thể được sử dụng để phát triển các ứng dụng Desktop. Người dùng có thể dùng wxPython, PyQt, PyGtk để phát triển các ứng dụng giao diện đồ họa (GUI) chất lượng cao. Python có thể hỗ trợ các GUI frameworks khác như MFC, Carbon, Delphi, X11, Motif, và Tk. Python cũng có sẵn một unit testing framework để tạo ra các các bộ test (test suites).

[sửa] Multiple paradigms (đa biến hóa)

Python là một ngôn ngữ đa biến hóa (multiple paradigms). Có nghĩa là, thay vì ép buộc mọi người phải sử dụng duy nhất một phương pháp lập trình, Python lại cho phép sử dụng nhiều phương pháp lập trình khác nhau: hướng đối tượng, có cấu trúc, chức năng, hoặc chỉ hướng đến một khía cạnh. Python kiểu kiểu động và sử dụng bộ thu gom rác để quản lí bộ nhớ. Một đặc điểm quan trọng nữa của Python là giải pháp tên động, kết nối tên biến và tên phương thức lại với nhau trong suốt thực thi của chương trình.

[sửa] Sự tương đương giữa true và một giá trị khác 0

Cũng như C/C++, bất kì một giá trị khác 0 nào cũng tương đương với true và ngược lại, một giá trị 0 tương đương với false. Như vậy:

if a != 0:

tương đương với

if a:


[sửa] Cú pháp

Sau đây là cú pháp cơ bản nhất của ngôn ngữ Python

[sửa] Toán tử

+  -  *  /   // (chia làm tròn)   % (phần dư)   ** (lũy thừa)
~ (not)   & (and)   | (or)   ^ (xor)
<< (left shift)   >> (right shift)
== (bằng)   <=   >=   != (khác)

Python sử dụng kí pháp trung tố thường gặp trong các ngôn ngữ lập trình khác.

[sửa] Các kiểu dữ liệu

  • Kiểu số
1234585396326 (số nguyên dài vô hạn)  -86.12   7.84E-04
2j     3 + 8j (số phức)
  • Kiểu chuỗi (string)
"Hello"    "It's me"     '"OK"-he replied'
  • Kiểu tuple
(1, 2.0, 3)   (1,)    ("Hello",1,())
  • Kiểu list
[4.8, -6]    ['a','b']
  • Kiểu dictionary
{"Vietnam":"Hanoi", "Netherlands":"Amsterdam", "France":"Paris"}

[sửa] Chú thích

# dòng chú thích

[sửa] Lệnh gán

tên biến = biểu thức
x = 23.8
y = -x ** 2
z1 = z2 = x + y
loiChao = "Hello!"
i += 1    # tăng biến i thêm 1 đơn vị

[sửa] In giá trị

print biểu thức
print (7 + 8) / 2.0
print (2 + 3j) * (4 - 6j)

Nội suy chuỗi (string interpolation)

print "Hello %s" %("world!")
print "i = %d" %i
print "a = %.2f and b = %.3f" %(a,b)

[sửa] Cấu trúc rẽ nhánh

  • Dạng 1:
if biểu_thức_đúng:
   # lệnh ...
  • Dạng 2:
if biểu_thức_đúng:
   # lệnh ...
else:
   # lệnh ...
  • Dạng 3:
if biểu_thức_đúng:
   # lệnh ...
elif:
   # lệnh ...
else:
   # lệnh ...

[sửa] Cấu trúc lặp

while biểu_thức_đúng:
   # lệnh ...
for phần_tử in dãy:
   # lệnh ...
L = ["Ha Noi", "Hai Phong", "TP Ho Chi Minh"]
for thanhPho in L:
   print thanhPho
for i in range(10):
   print i

[sửa] Hàm

def tên_hàm (tham_biến_1, tham_biến_2, ...)
   # lệnh ...
   return giá_trị_hàm
def binhPhuong(x):
   return x*x

[sửa] Liên kết ngoài

Wikibooks có sách điện tử về:
Các ngôn ngữ lập trình chính (xem thêm) (sửa)

Dùng cho kỹ nghệ: ABAP | Ada | AWK | BASH | Assembly | C | C++ | C# | Delphi | DHTML | Fortran | Java | JavaScript | Lisp | Objective-C | Perl | PHP | PL/SQL | Python | Ruby | SAS | sed | Smalltalk | Tcl | sh | Visual Basic | Visual Basic Script | VBA | VB.NET | Scheme

Dùng để giảng dạy: C | C++ | Eiffel | DHTML | Fortran | Haskell | Java | JavaScript | Logo | ML | Prolog | Scheme | Visual Basic | Visual Foxpro|

Có giá trị lịch sử: ALGOL | APL | BASIC | Clipper | COBOL | MUMPS | Pascal | PL/I | PowerBuilder | Simula

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com