text:
Python (ngôn ngữ lập trình)
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ó tương tự 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ý.
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[1].
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ừ MS-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
- 1 Lịch sử
- 2 Đặc điểm
- 3 Cú pháp
- 4 Tốc độ thực hiện
- 5 Các đặc điểm mới trong Python 3.x
- 6 Tham khảo
- 7 Liên kết ngoài
Lịch sử[sửa | sửa mã nguồn]
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ì vậ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 CNRI (Corporation for National Research Initiatives) ở 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à FSF (Free Software Foundation - Tổ chức phần mềm tự do) đã 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 vì Sự phát triển Phần mềm tự do (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, còn gọi là Python 3000 hoặc Py3K: Dòng 3.x sẽ không hoàn toàn tương thích với dòng 2.x, tuy vậy có công cụ hỗ trợ chuyển đổi từ các phiên bản 2.x sang 3.x. 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". Trong PEP (Python Enhancement Proposal) có mô tả chi tiết các thay đổi trong Python ([2]). Các đặc điểm mới của Python 3.0 sẽ được trình bày phần cuối bài này.
Đặc điểm[sửa | sửa mã nguồn]
Triết lý căn bản của ngôn ngữ Python được trình bày trong tài liệuThe Zen of Python (PEP 20), có dạng thơ Haiku, tóm gọn như sau:
- Đẹp đẽ tốt hơn xấu xí
- Minh bạch tốt hơn che đậy
- Đơn giản tốt hơn phức tạp
- Phức tạp tốt hơn rắc rối
- Dễ đọc
Dễ học, dễ đọc[sửa | sửa mã nguồn]
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:
Từ khóa[sửa | sửa mã nguồn]
- 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ữ HOA, chữ thường.
- Như C/C++, các từ khóa của Python đều ở dạng chữ thường.
Khối lệnh[sửa | sửa mã nguồn]
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 ngoặc nhọn
{ } đượ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++:
1 #include <math.h> 2 //... 3 delta = b * b – 4 * a * c; 4 if (delta > 0) 5 { 6 // Khối lệnh mới bắt đầu từ ký tự { đến } 7 x1 = (- b + sqrt(delta)) / (2 * a); 8 x2 = (- b - sqrt(delta)) / (2 * a); 9 printf("Phuong trinh co hai nghiem phan biet:\n"); 10 printf("x1 = %f; x2 = %f", x1, x2); 11 }
Đoạn mã trên có thể được viết lại bằng Python như sau:
1 import math 2 #... 3 delta = b * b – 4 * a * c 4 if delta > 0: 5 # Khối lệnh mới, thụt vào đầu dòng 6 x1 = (- b + math.sqrt(delta)) / (2 * a) 7 x2 = (- b – math.sqrt(delta)) / (2 * a) 8 print "Phuong trinh co hai nghiem phan biet:" 9 print "x1 = ", x1, "; ", "x2 = ", x2
Ta có thể sử dụng dấu tab hoặc khoảng trống để thụt các câu lệnh vào.
Các bản hiện thực[sửa | sửa mã nguồn]
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, 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ó 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.
Khả năng mở rộng[sửa | sửa mã nguồn]
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 đó.
Trình thông dịch[sửa | sửa mã nguồn]
Python là một ngôn ngữ lập trình dạng thông dịch, do đó có ưu điểm 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 theo 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 từng biểu thức rồi gõ
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ã lệnh trong suốt quá trình phát triển phần mềm. Ngoài ra, cũng có thể tận dụng đặc điểm này để thực hiện các phép tính như với máy tính bỏ túi.
Lệnh và cấu trúc điều khiển[sửa | sửa mã nguồ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
elifhoặ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.
- Lệnh
- Python cũng có từ khóa
classdùng để khai báo lớp (sử dụng trong lập trình hướng đối tượng) và lệnh
defdùng để định nghĩa hàm.
- Cấu trúc rẽ nhánh: cấu trúc
Hệ thống kiểu dữ liệu[sửa | sửa mã nguồn]
Python sử dụng hệ thống kiểu duck typing, còn gọi là latent typing (tự động xác định kiểu). 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 ký tự.
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 (trong phiên bản 3.x long được nhập vào trong kiểu int). Độ dài của kiểu số nguyên là tùy ý, chỉ bị giới hạn bởi bộ nhớ máy tính.
float: số thực
complex: số phức, chẳng hạn
5+4j
list: dãy trong đó các phần tử của nó có thể được thay đổi, chẳng hạn
[8, 2, 'b', -1.5]. Kiểu dãy khác với kiểu mảng (array) thường gặp trong các ngôn ngữ lập trình ở chỗ các phần tử của dãy không nhất thiết có kiểu giống nhau. Ngoài ra phần tử của dãy còn có thể là một dãy khác.
tuple: dãy trong đó các phần tử của nó không thể thay đổi.
str: chuỗi ký tự. Từng ký tự trong chuỗi không thể thay đổi. Chuỗi ký tự được đặt trong dấu nháy đơn, hoặc nháy kép.
dict: từ điển, còn gọi là "hashtable": là một cặp các dữ liệu được gắn theo kiểu {từ khóa: giá trị}, trong đó các từ khóa trong một từ điển nhất thiết phải khác nhau. Chẳng hạn
{1: "Python", 2: "Pascal"}
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. Xem thêm trong phần "Các kiểu dữ liệu" bên dưới.
Module[sửa | sửa mã nguồn]
Python cho phép chia chương trình thành các module để có thể sử dụng lại trong các chương trình khác. Nó cũng cung cấp sẵn một tập hợp các modules chuẩn mà lập trình viên có thể sử dụng lại trong chương trình của họ. Các module này cung cấp nhiều chức năng hữu ích, như các hàm truy xuất tập tin, các lời gọi hệ thống, trợ giúp lập trình mạng (socket),…
Đa năng[sửa | sửa mã nguồn]
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. Nó cũng có sẵn nhiều kiểu dữ liệu cấp cao, ví dụ như các mảng (array) linh hoạt và từ điển (dictionary) mà ta sẽ phải mất nhiều thời gian nếu viết bằng C.
Python là một ngôn ngữ lập trình cấp cao có thể đáp ứng phần lớn yêu cầu của lập trình viên:
- Python thích hợp với các chương trình lớn hơn cả AWK và Perl.
- Python được sử dụng để lập trình Web. Nó có thể được sử dụng như một ngôn ngữ kịch bản.
- Python được thiết kế để có thể nhúng và phục vụ như 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.
- Python đượ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, hỗ trợ các loại định dạng dữ liệu Internet như email, HTML, XML và các ngôn ngữ đánh dấu khác. Python cũng được cung cấp các thư viện xử lý các giao thức Internet thông dụng như HTTP, FTP,…
- Python có khả năng giao tiếp đến hầu hết các loại 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 biệt hiệu quả trong lập trình tính toán khoa học nhờ các công cụ Python Imaging Library, pyVTK, MayaVi 3D Visualization Toolkits, Numeric Python, ScientificPython,…
- Python có thể được sử dụng để phát triển các ứng dụng desktop. Lập trình viên 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òn hỗ trợ các nền tảng phát triển phần mềm khác như MFC, Carbon, Delphi, X11, Motif, Tk, Fox, FLTK, …
- Python cũng có sẵn một unit testing framework để tạo ra các bộ test (test suites).
Multiple paradigms (đa biến hóa)[sửa | sửa mã nguồn]
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ự tương đương giữa true và một giá trị khác 0[sửa | sửa mã nguồn]
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:
Cú pháp[sửa | sửa mã nguồn]
Sau đây là cú pháp cơ bản nhất của ngôn ngữ Python:
Khối lệnh[sửa | sửa mã nguồn]
Khác với đa số ngôn ngữ họ C sử dụng cặp ngoặc ngọn { } để phân chia khối lệnh, Python sử dụng lùi đầu dòng (indentation) như dấu cách hay tab để biểu thị khối lệnh. Các lệnh nằm cùng mức lùi đầu dòng sẽ cùng thuộc một khối. Để biểu thị một khối rỗng Python có từ khoá "pass".
Toán tử[sửa | sửa mã nguồn]
+ - * / // (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.
Các kiểu dữ liệu[sửa | sửa mã nguồn]
- Kiểu số
1234585396326 (số nguyên dài vô hạn) -86.12 7.84E-04 2j 3 + 8j
- Kiểu chuỗi (string)
- Kiểu bộ (tuple)
(1, 2.0, 3) (1,) ("Hello",1,())
- Kiểu danh sách (list)
[4.8, -6] ['a','b']
- Kiểu từ điển (dictionary)
{"Hanoi":"Vietnam", "Haiphong":"Vietnam", "Hochiminh":"Vietnam", "Netherlands":"Amsterdam", "France":"Paris"}
Chú thích[sửa | sửa mã nguồn]
1 # dòng chú thích
1 "" " đa chú thích 2 đa chú thích 3 đa chú thích " ""
Lệnh gán[sửa | sửa mã nguồn]
1 tên biến = biểu thức 2 x = 23.8 3 y = -x ** 2 4 z1 = z2 = x + y 5 loiChao = "Hello!" 6 7 i += 1 # tăng biến i thêm 1 đơn vị
In giá trị[sửa | sửa mã nguồn]
1 print biểu thức 2 print (7 + 8) / 2.0 3 print (2 + 3j) * (4 - 6j)
Nội suy chuỗi (string interpolation)
1 print "Hello %s" %("world!") 2 print "i = %d" %i 3 print "a = %.2f and b = %.3f" %(a,b)
Cấu trúc rẽ nhánh[sửa | sửa mã nguồn]
- 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ặp[sửa | sửa mã nguồn]
1 while biểu_thức_đúng: 2 # lệnh...
1 for phần_tử in dãy: 2 # lệnh...
1 L = ["Ha Noi", "Hai Phong", "TP Ho Chi Minh"] 2 for thanhPho in L: 3 print thanhPho 4 5 for i in range(10): 6 print i
Hàm[sửa | sửa mã nguồn]
1 def tên_hàm (tham_biến_1, tham_biến_2, tham_biến_n): 2 # lệnh... 3 return giá_trị_hàm
1 def binhPhuong(x): 2 return x*x
Hàm với tham số mặc định:
1 def luyThua(x, n=2): 2 """Lũy thừa với số mũ mặc định là 2""" 3 return x**n 4 5 print luyThua(3) # 9 6 print luyThua(2,3) # 8
Lớp[sửa | sửa mã nguồn]
1 class Tên_Lớp_1: 2 #... 3 4 class Tên_Lớp_2(Tên_Lớp_1): 5 """Lớp 2 kế thừa lớp 1""" 6 x = 3 # biến thành viên của lớp 7 # 8 def phương_thức(self, tham_biến): 9 #... 10 11 # khởi tạo 12 a = Tên_Lớp_2() 13 print a.x 14 print a.phương_thức(m) # m là giá trị gán cho tham biến
List Comprehension[sửa | sửa mã nguồn]
List Comprehension là dạng cú pháp đặc biệt (syntactic sugar) (mới có từ Python 2.x) cho phép thao tác trên toàn bộ dãy (list) mà không cần viết rõ vòng lặp. Chẳng hạn
y là một dãy mà mỗi phần tử của nó bằng bình phương của từng phần tử trong dãy
x:
y = [xi**2 for xi in x]
Xử lý ngoại lệ[sửa | sửa mã nguồn]
try: câu_lệnh except Loại_Lỗi: thông báo lỗi
Tốc độ thực hiện[sửa | sửa mã nguồn]
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, v.v... 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[3].
Các đặc điểm mới trong Python 3.x[sửa | sửa mã nguồn]
Nội dung phần này được trích từ tài liệu[4] của Guido van Rossum. Phần này không liệt kê đầy đủ tất cả các đặc điểm; chi tiết xin xem tài liệu nói trên.
Một số thay đổi cần lưu ý nhất[sửa | sửa mã nguồn]
- Lệnh
print(). Theo đó sau
print()ta cần nhớ gõ vào cặp ngoặc
():
print("Hello") print(2+3)
- Trả lại kết quả không còn là list trong một số trường hợp.
- So sánh
Không còn hàm
cmp, và
cmp(a, b) có thể được thay bằng
(a > b) - (a < b)
- Số nguyên
- Kiểu
longđược đổi tên thành
int.
1/2cho ta kết quả là số thực chứ không phải số nguyên.
- Không còn hằng số
sys.maxint
- Kiểu bát phân được ký hiệu bằng
0othay vì
0, chẳng hạn
0o26.
- Kiểu
- Phân biệt văn bản - dữ liệu nhị phân thay vì Unicode - chuỗi 8-bit
- Tất cả chuỗi văn bản đều dưới dạng Unicode, nhưng chuỗi Unicode mã hóa lại là dạng dữ liệu nhị phân. Dạng mặc định là UTF-8.
- Không thể viết
u"a string"để biểu diễn chuỗi như trong các phiên bản 2.x
Các thay đổi về cú pháp[sửa | sửa mã nguồn]
Cú pháp mới[sửa | sửa mã nguồn]
- Các tham biến chỉ chấp nhận keyword: Các tham biến phía sau
*argsphải được gọi theo dạng keyword.
- Từ khóa mới
nonlocal. Muốn khai báo một biến x với có phạm vi ảnh hưởng rộng hơn, nhưng chưa đến mức toàn cục, ta dùng
nonlocal x.
- Gán giá trị vào các phần tử tuple một cách thông minh, chẳng hạn có thể viết
(a, *rest, b) = range(5)để có được
a = 0; b = [1,2,3]; c = 4.
- Dictionary comprehension, chẳng hạn
{k: v for k, v in stuff}thay vì
dict(stuff).
- Kiểu nhị phân, chẳng hạn
b110001.
Cú pháp được thay đổi[sửa | sửa mã nguồn]
raise [biểu_thức [from biểu_thức]]
except lệnh as biến
- Sử dụng metaclass trong đối tượng:
class C(metaclass=M): pass
__metaclass__không còn được hỗ trợ.
Cú pháp bị loại bỏ[sửa | sửa mã nguồn]
- Không còn dấu
``, thay vì đó, dùng
repr.
- Không còn so sánh
<>(dùng
!=).
- Không còn các lớp kiểu classic.
Tham khảo[sửa | sửa mã nguồn]
- ^ Bài phỏng vấn Guido van Rossum [1].
- ^ Tài liệu PEP
- ^ The Computer Language Benchmark Game
- ^ What's new in Python 3.0
Liên kết ngoài[sửa | sửa mã nguồn]
- Python.org 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)
- [2] – Tài liệu tiếng Việt hướng dẫn lập trình game với Python

markdown:
# Python (ngôn ngữ lập trình)
[Python](/wiki/Python).
|
|![]()
[Phát triển bởi](/wiki/Nh%C3%A0_ph%C3%A1t_tri%E1%BB%83n_ph%E1%BA%A7n_m%E1%BB%81m) [Bản mẫu:Infobox software/simple](/w/index.php?title=B%E1%BA%A3n_m%E1%BA%ABu:Infobox_software/simple&action=edit&redlink=1) [Hệ điều hành](/wiki/H%E1%BB%87_%C4%91i%E1%BB%81u_h%C3%A0nh) [đa nền](/w/index.php?title=%C4%90a_n%E1%BB%81n_(khoa_h%E1%BB%8Dc_m%C3%A1y_t%C3%ADnh)&action=edit&redlink=1) [Thể loại](/w/index.php?title=Danh_s%C3%A1ch_th%E1%BB%83_lo%E1%BA%A1i_ph%E1%BA%A7n_m%E1%BB%81m&action=edit&redlink=1) [Ngôn ngữ lập trình](/wiki/Ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh) [Giấy phép](/wiki/Gi%E1%BA%A5y_ph%C3%A9p_ph%E1%BA%A7n_m%E1%BB%81m) [Python Software Foundation (bản 3.4.3)](https://www.python.org/download/releases/3.4.3/license/) [http://python.org](http://python.org) **Python** là một [ngôn ngữ lập trình](/wiki/Ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh) [thông dịch](/wiki/Tr%C3%ACnh_th%C3%B4ng_d%E1%BB%8Bch) do [Guido van Rossum](/w/index.php?title=Guido_van_Rossum&action=edit&redlink=1) tạo ra năm [1990](/wiki/1990). Python hoàn toàn [tạo kiểu động](/w/index.php?title=T%E1%BA%A1o_ki%E1%BB%83u_%C4%91%E1%BB%99ng&action=edit&redlink=1) và dùng cơ chế [cấp phát bộ nhớ tự động](/wiki/Qu%E1%BA%A3n_l%C3%BD_b%E1%BB%99_nh%E1%BB%9B); do vậy nó tương tự như [Perl](/wiki/Perl), [Ruby](/wiki/Ruby_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)), [Scheme](/wiki/Scheme), [Smalltalk](/wiki/Smalltalk), và [Tcl](/wiki/Tcl). Python được phát triển trong một dự án [mã mở](http://www.opensource.org/), do tổ chức phi lợi nhuận [Python Software Foundation](http://www.python.org/psf/about/) quản lý.
Theo đánh giá của
[Eric S. Raymond](/w/index.php?title=Eric_Raymond&action=edit&redlink=1), 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](/w/index.php?title=Guido_van_Rossum&action=edit&redlink=1) trong một bài phỏng vấn ông . [1]
Ban đầu, Python được phát triển để chạy trên nền
[Unix](/wiki/Unix). Nhưng rồi theo thời gian, nó đã "bành trướng" sang mọi [hệ điều hành](/wiki/H%E1%BB%87_%C4%91i%E1%BB%81u_h%C3%A0nh) từ [MS-DOS](/wiki/MS-DOS) đến [Mac OS](/wiki/Mac_OS), OS/2, [Windows](/wiki/Microsoft_Windows), [Linux](/wiki/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
[1 Lịch sử](#Lịch_sử) [2 Đặc điểm](#Đặc_điểm) [3 Cú pháp](#Cú_pháp) [4 Tốc độ thực hiện](#Tốc_độ_thực_hiện) [5 Các đặc điểm mới trong Python 3.x](#Các_đặc_điểm_mới_trong_Python_3.x) [6 Tham khảo](#Tham_khảo) [7 Liên kết ngoài](#Liên_kết_ngoài)
## Lịch sử[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=1) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=1)]
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](/wiki/Th%E1%BA%ADp_ni%C3%AAn_1990). Từ năm 1990 đến 1995, Guido làm việc tại [CWI](/w/index.php?title=CWI&action=edit&redlink=1)( *Centrum voor Wiskunde en Informatica*- Trung tâm Toán-Tin học tại [Amsterdam](/wiki/Amsterdam), [Hà Lan](/wiki/H%C3%A0_Lan)). Vì vậ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
[CNRI](/w/index.php?title=CNRI&action=edit&redlink=1)( *Corporation for National Research Initiatives*) ở [Reston](/w/index.php?title=Reston&action=edit&redlink=1), [Virginia](/wiki/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](/wiki/Gi%E1%BA%A5y_ph%C3%A9p_C%C3%B4ng_c%E1%BB%99ng_GNU). Sau đó, CNRI và [FSF](/wiki/Qu%E1%BB%B9_Ph%E1%BA%A7n_m%E1%BB%81m_T%E1%BB%B1_do)( *Free Software Foundation*- Tổ chức phần mềm tự do) đã 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 vì Sự phát triển Phần mềm tự do ( *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.
- Vào năm 1995, Guido chuyển sang
**Python 2**: vào năm 2000, Guido và nhóm phát triển Python dời đến [BeOpen.com](/w/index.php?title=BeOpen.com&action=edit&redlink=1)và thành lập [BeOpen PythonLabs team](/w/index.php?title=BeOpen_PythonLabs_team&action=edit&redlink=1). 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](/w/index.php?title=Digital_Creations&action=edit&redlink=1).
- 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](/w/index.php?title=Python_Software_Foundation&action=edit&redlink=1)(PSF), một tổ chức phi lợi nhuận được thành lập theo mẫu [Apache Software Foundation](/w/index.php?title=Apache_Software_Foundation&action=edit&redlink=1).
- 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 3**, còn gọi là **Python 3000**hoặc **Py3K**: Dòng 3.x sẽ không hoàn toàn tương thích với dòng 2.x, tuy vậy có công cụ hỗ trợ chuyển đổi từ các phiên bản 2.x sang 3.x. 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". Trong PEP ( *Python Enhancement Proposal*) có mô tả chi tiết các thay đổi trong Python ( ). Các đặc điểm mới của Python 3.0 sẽ được trình bày phần cuối bài này. [[2]](#cite_note-2)
## Đặc điểm[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=2) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=2)]
Triết lý căn bản của ngôn ngữ Python được trình bày trong tài liệu
*The Zen of Python* ( *PEP 20*), có dạng [thơ Haiku](/wiki/Haiku), tóm gọn như sau:
- Đẹp đẽ tốt hơn xấu xí
- Minh bạch tốt hơn che đậy
- Đơn giản tốt hơn phức tạp
- Phức tạp tốt hơn rắc rối
- Dễ đọc
### Dễ học, dễ đọc[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=3) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=3)]
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:
#### Từ khóa[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=4) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=4)]
- Python tăng cường sử dụng từ khóa
[tiếng Anh](/wiki/Ti%E1%BA%BFng_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ữ HOA, chữ thường.
- Như C/C++, các từ khóa của Python đều ở dạng chữ thường.
|and||del||for||is||raise|
|assert||elif||from||lambda||return|
|break||else||global||not||try|
|class||except||if||or||while|
|continue||exec||import||pass||yield|
|def||finally||in|
#### Khối lệnh[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=5) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=5)]
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 ngoặc nhọn
{ } đượ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++:
1 #include <math.h> 2 //... 3 delta = b * b – 4 * a * c; 4 if (delta > 0) 5 { 6 // Khối lệnh mới bắt đầu từ ký tự { đến } 7 x1 = (- b + sqrt(delta)) / (2 * a); 8 x2 = (- b - sqrt(delta)) / (2 * a); 9 printf("Phuong trinh co hai nghiem phan biet:\n"); 10 printf("x1 = %f; x2 = %f", x1, x2); 11 }
Đoạn mã trên có thể được viết lại bằng Python như sau:
1 import math 2 #... 3 delta = b * b – 4 * a * c 4 if delta > 0: 5 # Khối lệnh mới, thụt vào đầu dòng 6 x1 = (- b + math.sqrt(delta)) / (2 * a) 7 x2 = (- b – math.sqrt(delta)) / (2 * a) 8 print "Phuong trinh co hai nghiem phan biet:" 9 print "x1 = ", x1, "; ", "x2 = ", x2
Ta có thể sử dụng dấu
[tab](/wiki/Tab) hoặc khoảng trống để thụt các câu lệnh vào.
### Các bản hiện thực[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=6) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=6)]
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](/wiki/C_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)), 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](/wiki/Unix): [AIX](/w/index.php?title=AIX&action=edit&redlink=1), [Darwin](/wiki/Darwin), [FreeBSD](/wiki/FreeBSD), [Mac OS X](/wiki/Mac_OS_X), [NetBSD](/w/index.php?title=NetBSD&action=edit&redlink=1), [Linux](/wiki/Linux), [OpenBSD](/w/index.php?title=OpenBSD&action=edit&redlink=1), [Solaris](/wiki/Solaris),…
- Các hệ điều hành dành cho máy desktop:
[Amiga](/w/index.php?title=Amiga&action=edit&redlink=1), [AROS](/w/index.php?title=AROS&action=edit&redlink=1), [BeOS](/wiki/BeOS), [Mac OS 9](/w/index.php?title=Mac_OS_9&action=edit&redlink=1), [Microsoft Windows](/wiki/Microsoft_Windows), [OS/2](/w/index.php?title=OS/2&action=edit&redlink=1), [RISC OS](/w/index.php?title=RISC_OS&action=edit&redlink=1).
- Các hệ thống nhúng và các hệ đặc biệt:
[GP2X](/w/index.php?title=GP2X&action=edit&redlink=1), [Máy ảo Java](/w/index.php?title=JVM&action=edit&redlink=1), Nokia 770 Internet Tablet, [Palm OS](/w/index.php?title=Palm_OS&action=edit&redlink=1), [PlayStation 2](/wiki/PlayStation_2), PlayStation Portable, [Psion](/w/index.php?title=Psion&action=edit&redlink=1), [QNX](/w/index.php?title=QNX&action=edit&redlink=1), [Sharp Zaurus](/w/index.php?title=Sharp_Zaurus&action=edit&redlink=1), [Symbian OS](/wiki/Symbian_OS), [Windows CE](/wiki/Windows_CE)/ [Pocket PC](/wiki/Pocket_PC), [Xbox](/wiki/Xbox)/ [XBMC](/w/index.php?title=XBMC&action=edit&redlink=1), [VxWorks](/w/index.php?title=VxWorks&action=edit&redlink=1).
- Các hệ máy tính lớn và các hệ khác: AS/400, OS/390, Plan 9 from
[Bell Labs](/w/index.php?title=Bell_Labs&action=edit&redlink=1), [VMS](/w/index.php?title=VMS&action=edit&redlink=1), z/OS.
Ngoài CPython, còn có hai hiện thực Python khác:
[Jython](/w/index.php?title=Jython&action=edit&redlink=1) cho môi trường [Java](/wiki/Java) và [IronPython](/w/index.php?title=IronPython&action=edit&redlink=1) cho môi trường [.NET](/w/index.php?title=.NET&action=edit&redlink=1) và [Mono](/wiki/Mono).
### Khả năng mở rộng[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=7) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=7)]
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 đó.
### Trình thông dịch[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=8) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=8)]
Python là một ngôn ngữ lập trình dạng
[thông dịch](/w/index.php?title=Th%C3%B4ng_d%E1%BB%8Bch&action=edit&redlink=1), do đó có ưu điểm 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](/w/index.php?title=Bi%C3%AAn_d%E1%BB%8Bch_(ch%C6%B0%C6%A1ng_tr%C3%ACnh)&action=edit&redlink=1) và [liên kết](/w/index.php?title=Li%C3%AAn_k%E1%BA%BFt_(ch%C6%B0%C6%A1ng_tr%C3%ACnh)&action=edit&redlink=1). 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 theo cách tương tác. Ở chế độ tương tác, trình thông dịch Python tương tự [shell](/w/index.php?title=Shell_(Unix)&action=edit&redlink=1) của các hệ điều hành họ Unix, tại đó, ta có thể nhập vào từng biểu thức rồi gõ
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ã lệnh](/w/index.php?title=M%C3%A3_l%E1%BB%87nh&action=edit&redlink=1) trong suốt quá trình phát triển phần mềm. Ngoài ra, cũng có thể tận dụng đặc điểm này để thực hiện các phép tính như với [máy tính bỏ túi](/wiki/M%C3%A1y_t%C3%ADnh_b%E1%BB%8F_t%C3%BAi).
### Lệnh và cấu trúc điều khiển[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=9) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=9)]
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
elifhoặ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.
- Lệnh
- Python cũng có từ khóa
classdùng để khai báo lớp (sử dụng trong lập trình hướng đối tượng) và lệnh
defdùng để định nghĩa hàm.
- Cấu trúc rẽ nhánh: cấu trúc
### Hệ thống kiểu dữ liệu[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=10) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=10)]
Python sử dụng hệ thống kiểu
*duck typing*, còn gọi là *latent typing* (tự động xác định kiểu). 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 ký tự.
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 (trong phiên bản 3.x long được nhập vào trong kiểu int). Độ dài của kiểu số nguyên là tùy ý, chỉ bị giới hạn bởi bộ nhớ máy tính.
float: số thực
complex:
[số phức](/wiki/S%E1%BB%91_ph%E1%BB%A9c), chẳng hạn
5+4j
list: dãy trong đó các phần tử của nó có thể được thay đổi, chẳng hạn
[8, 2, 'b', -1.5]. Kiểu dãy khác với kiểu
[mảng](/wiki/M%E1%BA%A3ng)(array) thường gặp trong các ngôn ngữ lập trình ở chỗ các phần tử của dãy không nhất thiết có kiểu giống nhau. Ngoài ra phần tử của dãy còn có thể là một dãy khác.
tuple: dãy trong đó các phần tử của nó không thể thay đổi.
str: chuỗi ký tự. Từng ký tự trong chuỗi không thể thay đổi. Chuỗi ký tự được đặt trong dấu nháy đơn, hoặc nháy kép.
dict: từ điển, còn gọi là "hashtable": là một cặp các dữ liệu được gắn theo kiểu {từ khóa: giá trị}, trong đó các từ khóa trong một từ điển nhất thiết phải khác nhau. Chẳng hạn
{1: "Python", 2: "Pascal"}
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. Xem thêm trong phần "Các kiểu dữ liệu" bên dưới.
### Module[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=11) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=11)]
Python cho phép chia chương trình thành các module để có thể sử dụng lại trong các chương trình khác. Nó cũng cung cấp sẵn một tập hợp các modules chuẩn mà lập trình viên có thể sử dụng lại trong chương trình của họ. Các module này cung cấp nhiều chức năng hữu ích, như các hàm truy xuất tập tin, các lời gọi hệ thống, trợ giúp lập trình mạng (
[socket](/w/index.php?title=Socket&action=edit&redlink=1)),…
### Đa năng[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=12) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=12)]
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](/w/index.php?title=Shell_(Unix)&action=edit&redlink=1), 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](/wiki/C), Python cung cấp nhiều cơ chế kiểm tra lỗi hơn. Nó cũng có sẵn nhiều [kiểu dữ liệu](/wiki/Ki%E1%BB%83u_d%E1%BB%AF_li%E1%BB%87u)cấp cao, ví dụ như các mảng ( *array*) linh hoạt và [từ điển](/w/index.php?title=T%E1%BB%AB_%C4%91i%E1%BB%83n_(khoa_h%E1%BB%8Dc_m%C3%A1y_t%C3%ADnh)&action=edit&redlink=1)( [dictionary](/wiki/T%E1%BB%AB_%C4%91i%E1%BB%83n)) mà ta sẽ phải mất nhiều thời gian nếu viết bằng C.
Python là một ngôn ngữ lập trình cấp cao có thể đáp ứng phần lớn yêu cầu của lập trình viên:
- Python thích hợp với các chương trình lớn hơn cả
[AWK](/wiki/AWK)và [Perl](/wiki/Perl).
- Python được sử dụng để lập trình Web. Nó có thể được sử dụng như một
[ngôn ngữ kịch bản](/w/index.php?title=Ng%C3%B4n_ng%E1%BB%AF_k%E1%BB%8Bch_b%E1%BA%A3n&action=edit&redlink=1).
- Python được thiết kế để có thể
[nhúng](/wiki/H%E1%BB%87_th%E1%BB%91ng_nh%C3%BAng)và phục vụ như 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.
- Python được tích hợp sẵn nhiều công cụ và có một
[thư viện chuẩn](/w/index.php?title=Th%C6%B0_vi%E1%BB%87n_(ch%C6%B0%C6%A1ng_tr%C3%ACnh)&action=edit&redlink=1)phong phú, Python cho phép người dùng dễ dàng tạo ra các [dịch vụ Web](/wiki/D%E1%BB%8Bch_v%E1%BB%A5_web), sử dụng các thành phần [COM](/w/index.php?title=COM&action=edit&redlink=1)hay [CORBA](/w/index.php?title=CORBA&action=edit&redlink=1), hỗ trợ các loại [định dạng](/w/index.php?title=%C4%90%E1%BB%8Bnh_d%E1%BA%A1ng&action=edit&redlink=1)dữ liệu [Internet](/wiki/Internet)như [HTML](/wiki/HTML), [XML](/wiki/XML)và các [ngôn ngữ đánh dấu](/wiki/Ng%C3%B4n_ng%E1%BB%AF_%C4%91%C3%A1nh_d%E1%BA%A5u)khác. Python cũng được cung cấp các thư viện xử lý các [giao thức Internet](/wiki/IP)thông dụng như [HTTP](/wiki/Hypertext_Transfer_Protocol), [FTP](/wiki/FTP),…
- Python có khả năng giao tiếp đến hầu hết các loại
[cơ sở dữ liệu](/wiki/C%C6%A1_s%E1%BB%9F_d%E1%BB%AF_li%E1%BB%87u), có khả năng [xử lý văn bản](/wiki/X%E1%BB%AD_l%C3%BD_v%C4%83n_b%E1%BA%A3n), 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 biệt hiệu quả trong
[lập trình](/wiki/L%E1%BA%ADp_tr%C3%ACnh_m%C3%A1y_t%C3%ADnh)tính toán khoa học nhờ các công cụ [Python Imaging Library](/w/index.php?title=Python_Imaging_Library&action=edit&redlink=1), [pyVTK](/w/index.php?title=VTK&action=edit&redlink=1), [MayaVi 3D Visualization Toolkits](/w/index.php?title=MayaVi&action=edit&redlink=1), [Numeric Python](/w/index.php?title=Numeric_Python&action=edit&redlink=1), [ScientificPython](/w/index.php?title=ScientificPython&action=edit&redlink=1),…
- Python có thể được sử dụng để phát triển các
[ứng dụng desktop](/w/index.php?title=%E1%BB%A8ng_d%E1%BB%A5ng_desktop&action=edit&redlink=1). [Lập trình viên](/wiki/L%E1%BA%ADp_tr%C3%ACnh_vi%C3%AAn)có thể dùng [wxPython](/wiki/WxPython), [PyQt](/w/index.php?title=PyQt&action=edit&redlink=1), [PyGtk](/w/index.php?title=PyGtk&action=edit&redlink=1)để phát triển các ứng dụng giao diện đồ họa ( [GUI](/wiki/Giao_di%E1%BB%87n_ng%C6%B0%E1%BB%9Di_d%C3%B9ng_%C4%91%E1%BB%93_h%E1%BB%8Da)) chất lượng cao. Python còn hỗ trợ các [nền tảng](/w/index.php?title=Framework&action=edit&redlink=1)phát triển phần mềm khác như [MFC](/w/index.php?title=MFC&action=edit&redlink=1), [Carbon](/wiki/Cacbon), [Delphi](/wiki/Delphi), [X11](/w/index.php?title=X11&action=edit&redlink=1), [Motif](/w/index.php?title=Motif&action=edit&redlink=1), [Tk](/wiki/Tk), [Fox](/w/index.php?title=Fox&action=edit&redlink=1), [FLTK](/w/index.php?title=FLTK&action=edit&redlink=1), …
- Python cũng có sẵn một
*unit testing framework*để tạo ra các bộ test ( *test suites*).
### Multiple paradigms (đa biến hóa)[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=13) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=13)]
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ự tương đương giữa true và một giá trị khác 0[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=14) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=14)]
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:
## Cú pháp[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=15) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=15)]
Sau đây là cú pháp cơ bản nhất của ngôn ngữ Python:
### Khối lệnh[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=16) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=16)]
Khác với đa số ngôn ngữ họ C sử dụng cặp ngoặc ngọn { } để phân chia khối lệnh, Python sử dụng lùi đầu dòng (indentation) như dấu cách hay tab để biểu thị khối lệnh. Các lệnh nằm cùng mức lùi đầu dòng sẽ cùng thuộc một khối. Để biểu thị một khối rỗng Python có từ khoá "pass".
### Toán tử[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=17) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=17)]
+ - * / // (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ố](/w/index.php?title=K%C3%BD_ph%C3%A1p_trung_t%E1%BB%91&action=edit&redlink=1) thường gặp trong các ngôn ngữ lập trình khác.
### Các kiểu dữ liệu[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=18) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=18)]
- Kiểu số
1234585396326 (số nguyên dài vô hạn) -86.12 7.84E-04 2j 3 + 8j
- Kiểu chuỗi (string)
- Kiểu bộ (tuple)
(1, 2.0, 3) (1,) ("Hello",1,())
- Kiểu danh sách (list)
[4.8, -6] ['a','b']
- Kiểu từ điển (dictionary)
{"Hanoi":"Vietnam", "Haiphong":"Vietnam", "Hochiminh":"Vietnam", "Netherlands":"Amsterdam", "France":"Paris"}
### Chú thích[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=19) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=19)]
1 # dòng chú thích
1 "" " đa chú thích 2 đa chú thích 3 đa chú thích " ""
### Lệnh gán[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=20) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=20)]
1 tên biến = biểu thức 2 x = 23.8 3 y = -x ** 2 4 z1 = z2 = x + y 5 loiChao = "Hello!" 6 7 i += 1 # tăng biến i thêm 1 đơn vị
### In giá trị[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=21) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=21)]
1 print biểu thức 2 print (7 + 8) / 2.0 3 print (2 + 3j) * (4 - 6j)
Nội suy chuỗi (string interpolation)
1 print "Hello %s" %("world!") 2 print "i = %d" %i 3 print "a = %.2f and b = %.3f" %(a,b)
### Cấu trúc rẽ nhánh[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=22) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=22)]
- 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ặp[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=23) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=23)]
1 while biểu_thức_đúng: 2 # lệnh...
1 for phần_tử in dãy: 2 # lệnh...
1 L = ["Ha Noi", "Hai Phong", "TP Ho Chi Minh"] 2 for thanhPho in L: 3 print thanhPho 4 5 for i in range(10): 6 print i
### Hàm[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=24) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=24)]
1 def tên_hàm (tham_biến_1, tham_biến_2, tham_biến_n): 2 # lệnh... 3 return giá_trị_hàm
1 def binhPhuong(x): 2 return x*x
Hàm với tham số mặc định:
1 def luyThua(x, n=2): 2 """Lũy thừa với số mũ mặc định là 2""" 3 return x**n 4 5 print luyThua(3) # 9 6 print luyThua(2,3) # 8
### Lớp[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=25) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=25)]
1 class Tên_Lớp_1: 2 #... 3 4 class Tên_Lớp_2(Tên_Lớp_1): 5 """Lớp 2 kế thừa lớp 1""" 6 x = 3 # biến thành viên của lớp 7 # 8 def phương_thức(self, tham_biến): 9 #... 10 11 # khởi tạo 12 a = Tên_Lớp_2() 13 print a.x 14 print a.phương_thức(m) # m là giá trị gán cho tham biến
### List Comprehension[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=26) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=26)]
List Comprehension là dạng cú pháp đặc biệt (
[syntactic sugar](/w/index.php?title=Syntactic_sugar&action=edit&redlink=1)) (mới có từ Python 2.x) cho phép thao tác trên toàn bộ dãy (list) mà không cần viết rõ vòng lặp. Chẳng hạn
y là một dãy mà mỗi phần tử của nó bằng bình phương của từng phần tử trong dãy
x:
y = [xi**2 for xi in x]
### Xử lý ngoại lệ[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=27) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=27)]
try: câu_lệnh except Loại_Lỗi: thông báo lỗi
## Tốc độ thực hiện[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=28) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=28)]
Là một
[ngôn ngữ thông dịch](/w/index.php?title=Ng%C3%B4n_ng%E1%BB%AF_th%C3%B4ng_d%E1%BB%8Bch&action=edit&redlink=1), 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](/w/index.php?title=Ng%C3%B4n_ng%E1%BB%AF_bi%C3%AAn_d%E1%BB%8Bch&action=edit&redlink=1) như [Fortran](/wiki/Fortran), [C](/wiki/C), v.v... Trong số các ngôn ngữ thông dịch, Python được đánh giá nhanh hơn [Ruby](/wiki/Ruby_(%C4%91%E1%BB%8Bnh_h%C6%B0%E1%BB%9Bng)) và [Tcl](/wiki/Tcl), nhưng chậm hơn [Lua](/wiki/Lua) . [3]
## Các đặc điểm mới trong Python 3.x[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=29) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=29)]
Nội dung phần này được trích từ tài liệu
của [4] [Guido van Rossum](/w/index.php?title=Guido_van_Rossum&action=edit&redlink=1). Phần này không liệt kê đầy đủ tất cả các đặc điểm; chi tiết xin xem tài liệu nói trên.
### Một số thay đổi cần lưu ý nhất[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=30) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=30)]
- Lệnh
print(). Theo đó sau
print()ta cần nhớ gõ vào cặp ngoặc
():
print("Hello") print(2+3)
- Trả lại kết quả không còn là list trong một số trường hợp.
- So sánh
Không còn hàm
cmp, và
cmp(a, b) có thể được thay bằng
(a > b) - (a < b)
- Số nguyên
- Kiểu
longđược đổi tên thành
int.
1/2cho ta kết quả là số thực chứ không phải số nguyên.
- Không còn hằng số
sys.maxint
- Kiểu bát phân được ký hiệu bằng
0othay vì
0, chẳng hạn
0o26.
- Kiểu
- Phân biệt văn bản - dữ liệu
[nhị phân](/wiki/T%E1%BA%ADp_tin_nh%E1%BB%8B_ph%C3%A2n)thay vì [Unicode](/wiki/Unicode)- chuỗi 8-bit
- Tất cả chuỗi văn bản đều dưới dạng Unicode, nhưng chuỗi Unicode mã hóa lại là dạng dữ liệu nhị phân. Dạng mặc định là UTF-8.
- Không thể viết
u"a string"để biểu diễn chuỗi như trong các phiên bản 2.x
### Các thay đổi về cú pháp[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=31) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=31)]
#### Cú pháp mới[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=32) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=32)]
- Các tham biến chỉ chấp nhận keyword: Các tham biến phía sau
*argsphải được gọi theo dạng keyword.
- Từ khóa mới
nonlocal. Muốn khai báo một biến x với có phạm vi ảnh hưởng rộng hơn, nhưng chưa đến mức toàn cục, ta dùng
nonlocal x.
- Gán giá trị vào các phần tử tuple một cách thông minh, chẳng hạn có thể viết
(a, *rest, b) = range(5)để có được
a = 0; b = [1,2,3]; c = 4.
- Dictionary comprehension, chẳng hạn
{k: v for k, v in stuff}thay vì
dict(stuff).
- Kiểu nhị phân, chẳng hạn
b110001.
#### Cú pháp được thay đổi[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=33) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=33)]
raise [biểu_thức [from biểu_thức]]
except lệnh as biến
- Sử dụng metaclass trong đối tượng:
class C(metaclass=M): pass
__metaclass__không còn được hỗ trợ.
#### Cú pháp bị loại bỏ[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=34) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=34)]
- Không còn dấu
``, thay vì đó, dùng
repr.
- Không còn so sánh
<>(dùng
!=).
- Không còn các lớp kiểu classic.
## Tham khảo[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=35) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=35)] **Bài phỏng vấn Guido van Rossum** [^](#cite_ref-1) [[1]](http://www.artima.com/intv/speed.html). [^](#cite_ref-2) [Tài liệu PEP](http://www.python.org/peps/pep-3000.html) [^](#cite_ref-3) [The Computer Language Benchmark Game](http://shootout.alioth.debian.org/) [^](#cite_ref-4) [What's new in Python 3.0](http://docs.python.org/3.0/whatsnew/3.0.html)
## Liên kết ngoài[
[sửa](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&veaction=edit§ion=36) | [sửa mã nguồn](/w/index.php?title=Python_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit§ion=36)]
|
|![]()
|
|[Python.org](http://www.python.org/)Trang chủ chính thức [Python Wiki](http://wiki.python.org/moin) [Tài liệu Python](http://www.python.org/doc/) [Python Cheese Shop](http://cheeseshop.python.org/)– Kho đựng phần mềm viết bằng Python; trước đây gọi là Python Package Index (PyPI) [[2]](http://commons.wikimedia.org/wiki/Image:Python_Continuation_gamedev.pdf#file)– Tài liệu tiếng Việt hướng dẫn lập trình game với Python [ABAP](/wiki/ABAP) [Ada](/wiki/Ada_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)) [ASP](/w/index.php?title=ASP&action=edit&redlink=1) [ASP.NET](/wiki/ASP.NET) [AWK](/wiki/AWK) [Bash](/w/index.php?title=Bash&action=edit&redlink=1) [Assembly](/wiki/Assembly) [C](/wiki/C_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)) [C++](/wiki/C%2B%2B) [C#](/wiki/C_th%C4%83ng) [D](/w/index.php?title=D_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit&redlink=1) [Delphi](/wiki/Delphi_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)) [Erlang](/w/index.php?title=Erlang_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)&action=edit&redlink=1) [Groovy](/w/index.php?title=Groovy&action=edit&redlink=1) [DHTML](/wiki/HTML_%C4%91%E1%BB%99ng) [Fortran](/wiki/Fortran) [Java](/wiki/Java_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)) [JavaScript](/wiki/JavaScript) [Lisp](/wiki/Lisp) [Lua](/wiki/Lua) [Lotus Notes](/w/index.php?title=Lotus_Notes&action=edit&redlink=1) [Objective-C](/w/index.php?title=Objective-C&action=edit&redlink=1) [OCaml](/wiki/OCaml) [Perl](/wiki/Perl) [PHP](/wiki/PHP) [PL/SQL](/w/index.php?title=PL/SQL&action=edit&redlink=1) [Python] [Ruby](/wiki/Ruby_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)) [SAS](/w/index.php?title=SAS_System&action=edit&redlink=1) [sed](/w/index.php?title=Sed&action=edit&redlink=1) [Smalltalk](/wiki/Smalltalk) [Tcl](/wiki/Tcl) [sh](/w/index.php?title=Bourne_shell&action=edit&redlink=1) [Visual Basic](/wiki/Visual_Basic) [VBScript](/wiki/VBScript) [Visual Basic for Applications](/wiki/Visual_Basic_for_Applications) [VB.NET](/w/index.php?title=Visual_Basic_.NET&action=edit&redlink=1) [Scheme](/wiki/Scheme) [HTML](/wiki/HTML) [XML](/wiki/XML) Dùng cho kỹ nghệ Dùng trong giảng dạy Có giá trị lịch sử Wikimedia Commons có thư viện hình ảnh và phương tiện truyền tải về [Python (ngôn ngữ lập trình)](https://commons.wikimedia.org/wiki/Category:Python_(programming_language)?uselang=vi)

P3P: CP="This is not a P3P policy! See https://vi.wikipedia.org/wiki/%C4%90%E1%BA%B7c_bi%E1%BB%87t:CentralAutoLogin/P3P for more info."

X-Cache-Status: miss

Set-Cookie: GeoIP=US:VA:Ashburn:39.05:-77.47:v4; Path=/; secure; Domain=.wikipedia.org

X-Cache: cp1066 miss, cp1066 miss

X-Content-Type-Options: nosniff

Via: 1.1 varnish-v4, 1.1 varnish-v4

X-UA-Compatible: IE=Edge

Cache-Control: private, s-maxage=0, max-age=0, must-revalidate

Vary: Accept-Encoding,Cookie,Authorization

Content-Language: vi

Link: </static/images/project-logos/viwiki.png>;rel=preload;as=image;media=not all and (min-resolution: 1.5dppx),</static/images/project-logos/viwiki-1.5x.png>;rel=preload;as=image;media=(min-resolution: 1.5dppx) and (max-resolution: 1.999999dppx),</static/images/project-logos/viwiki-2x.png>;rel=preload;as=image;media=(min-resolution: 2dppx)


text:
(VTC News) – Tân quả bóng Vàng Việt Nam 2014 Phạm Thành Lương đã sớm nói lời chia tay ĐT Việt Nam sau 2 ngày tập trung.
Trước buổi tập chiều qua của U23 Việt Nam, tiền vệ Phạm Thành Lương của ĐT Việt Nam và HLV Miura đã có cuộc nói chuyện ở căng tin Liên đoàn bóng đá Việt Nam. Sau khi nhận được báo cáo từ chuyên gia trị liệu Shinichi, ông Miura đã khuyên Thành Lương sớm chia tay ĐT Việt Nam để tập trung cho việc điều trị chấn thương cơ háng mà cầu thủ này đang gặp phải.
Theo các bác sĩ, chấn thương của tân bóng Vàng Việt Nam 2014 cần phải tách biệt hoàn toàn với sân cỏ trong khoảng thời gian tối thiểu một tuần mới có thể tập luyện trở lại.
Cầu thủ của CLB Hà Nội T&T đã dính chấn thương trước khi tập trung đội tuyển Việt Nam và chỉ tập nhẹ trong những ngày qua.
Clip Thành Lương giành Quả bóng Vàng Việt Nam 2014
thethao/2015/04/14/Thnh-Lng-ginh-qu-bng-vng-1428966657.mp4&stream=pseudo" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" quality="high">
Việc không có sự phục vụ của Thành Lương ở hàng tiền vệ trước chuyến làm khách trên sân Thái Lan ngày 24/5 là một điều hết sức đáng tiếc cho HLV Miura và ĐT Việt Nam. Tuy nhiên, ông thầy người Nhật không thể mạo hiểm với Thành Lương. Ông chia sẻ: “Thành Lương là cầu thủ tài năng và vẫn còn tương lai rộng mở phía trước. Cậu ta cần được tạo điều kiện thuận lợi nhất để điều trị dứt điểm chấn thương, sớm quay trở lại sân cỏ”.
Sau buổi nói chuyện riêng với HLV Miura, Phạm Thành Lương đã chào tạm biệt đồng đội ở đội tuyển Việt Nam để trở lại CLB tập trung điều trị chấn thương theo phác đồ điều trị của chuyên gia thể lực Shinichi.
Ngay sau khi Thành Lương nói lời chia tay ĐT Việt Nam, HLV Miura cũng đã có kế hoạch gọi bổ sung cầu thủ. Theo đó, tiền đạo kỳ cựu Quảng Hải của Than Quảng Ninh sẽ được triệu tập.
Siêu phẩm của Thành Lương tại AFF Cup 2014
Tiểu Hàn

markdown:
**(VTC News) – Tân quả bóng Vàng Việt Nam 2014 Phạm Thành Lương đã sớm nói lời chia tay ĐT Việt Nam sau 2 ngày tập trung.**
Trước buổi tập chiều qua của U23 Việt Nam, tiền vệ Phạm Thành Lương của ĐT Việt Nam và HLV Miura đã có cuộc nói chuyện ở căng tin Liên đoàn
[bóng đá](http://vtc.vn/the-thao-34.htm)Việt Nam. Sau khi nhận được báo cáo từ chuyên gia trị liệu Shinichi, ông Miura đã khuyên Thành Lương sớm chia tay ĐT Việt Nam để tập trung cho việc điều trị chấn thương cơ háng mà cầu thủ này đang gặp phải.
Theo các bác sĩ, chấn thương của tân bóng Vàng Việt Nam 2014 cần phải tách biệt hoàn toàn với sân cỏ trong khoảng thời gian tối thiểu một tuần mới có thể tập luyện trở lại.
![ Thành Lương sớm nói lời chia tay đồng đội (Ảnh: Hà Thành) ](https://image.vtc.vn/files/f2/2015/05/08/thanh-luong-chia-tay-dtvn-sau-cuoc-noi-chuyen-voi-miura-o-cantin-0.jpg)
Thành Lương sớm nói lời chia tay đồng đội (Ảnh: Hà Thành)
Cầu thủ của CLB Hà Nội T&T đã dính chấn thương trước khi tập trung đội tuyển Việt Nam và chỉ tập nhẹ trong những ngày qua.
**Clip Thành Lương giành Quả bóng Vàng Việt Nam 2014**
thethao/2015/04/14/Thnh-Lng-ginh-qu-bng-vng-1428966657.mp4&stream=pseudo" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" quality="high">
Việc không có sự phục vụ của Thành Lương ở hàng tiền vệ trước chuyến làm khách trên sân Thái Lan ngày 24/5 là một điều hết sức đáng tiếc cho HLV Miura và ĐT Việt Nam. Tuy nhiên, ông thầy người Nhật không thể mạo hiểm với Thành Lương. Ông chia sẻ: “Thành Lương là cầu thủ tài năng và vẫn còn tương lai rộng mở phía trước. Cậu ta cần được tạo điều kiện thuận lợi nhất để điều trị dứt điểm chấn thương, sớm quay trở lại sân cỏ”.
Sau buổi nói chuyện riêng với HLV Miura, Phạm Thành Lương đã chào tạm biệt đồng đội ở đội tuyển Việt Nam để trở lại CLB tập trung điều trị chấn thương theo phác đồ điều trị của chuyên gia thể lực Shinichi.
Ngay sau khi Thành Lương nói lời chia tay ĐT Việt Nam, HLV Miura cũng đã có kế hoạch gọi bổ sung cầu thủ. Theo đó, tiền đạo kỳ cựu Quảng Hải của Than Quảng Ninh sẽ được triệu tập.
**Siêu phẩm của Thành Lương tại AFF Cup 2014**
**Tiểu Hàn**

WARC-Type: response

Content-Type: application/http; msgtype=response

WARC-Truncated: length

WARC-Identified-Payload-Type: text/html

Server: nginx

Content-Type: text/html; charset=utf-8

Connection: close

Vary: Accept-Encoding

Pragma: no-cache

Cache-Control: public

X-Fastcgi-Cache: MISS


text:
Hạch toán nguồn vốn chủ sở hữu và các loại quỹ tại công ty thực phẩm Hà Nội MỤC LỤC
Phần I : Quá trình hình thành và phát triển công ty
Phần II: Thực trạng công tác hạch toán kế toán tại công ty thực phẩm Hà Nội.
Chương I : Kế toánTSCĐ và chi phí khấu hao TSCĐ
I) Hạch toán TSCĐ
II) Kế toán hao mòn và tính khấu hao TSCĐ
III) Kế toán sửa chữa TSCĐ
Chương II: Hạch toán nguyên vật liệu và CCDC tại công ty thực phẩm Hà Nội.
I) Phương pháp hạch toán nguyên vật liệu tại công ty
II) Kế toán CCDC
Chương III: Kế toán tiền lương và các khoản trích theo lương tại công ty thực phẩm hà nội.
I) Phương pháp tính lương và các khoản tính theo lương.
II) Phương pháp kế toán tiền lương và các khoản thanh toán với công nhân viên.
Chương IV : Hạch toán chi phí sản xuất và tính giá thành sản phẩm tại công ty thực phẩm hà nội.
I) Đối tượng và phương pháp hạch toán chi phí sản xuất.
II) Tính giá thành sản phẩm tại công ty.
Chương V: Kế toán thành phẩm lao vụ đã hoàn thành
Chương VI : Kế toán tiêu thụ sản phẩm hàng hoá dịch vụ.
I) Phương thức bán hàng tại doanh nghiệp
II) Kế toán doanh thu bán hàng
III) Kế toán chi phí bán hàng và chi phí quản lý doanh nghiệp
Chương VII: Kế toán vốn bằng tiền
I) Kế toán tiền mặt
II) Kế toán tiền gửi ngân hàng
Chương VIII: Kế toán các nghiệp vụ thanh toán tại công ty thực phẩm hà nội
I) Kế toán các khoản phải thu
Chương IX: Kế toán hoạt động tài chính và chi phí bất thường
I) Kế toán thu nhập hoạt động tài chính và hoạt động bất thường.
II) Kế toán chi phí hoạt động tài chính, hoạt động bất thường
Chương X: Hạch toán nguồn vốn chủ sở hữu và các loại quỹ tại công ty thực phẩm hà nội
I) hạch toán nguồn vốn kinh doanh
II) Kế toán các quỹ
Chương XI: Kế toán kết quả kinh doanh và phân phối lãi tại công ty.
I) Kế toán kết quả kinh doanh
II) Kế toán phân phối lãi
Chương XII : Báo cáo kế toán
Phần III : kết luận
Xem Thêm: Hạch toán nguồn vốn chủ sở hữu và các loại quỹ tại công ty thực phẩm Hà NộiNội dung trên chỉ thể hiện một phần hoặc nhiều phần trích dẫn. Để có thể xem đầy đủ, chi tiết và đúng định dạng tài liệu, bạn vui lòng tải tài liệu. Hy vọng tài liệu Hạch toán nguồn vốn chủ sở hữu và các loại quỹ tại công ty thực phẩm Hà Nội sẽ giúp ích cho bạn.
- Gửi tài liệu
- Bình luận
-
Hạch toán nguồn vốn chủ sở hữu và các loại quỹ tại công ty thực phẩm Hà Nội
CHUYÊN ĐỀ Hạch toán nguồn vốn chủ sở hữu và các loại quỹ tại công ty thực phẩm Hà Nội
Hạch toán nguồn vốn chủ sở hữu và các loại quỹ tại công ty thực phẩm Hà NộiHạch toán nguồn vốn chủ sở hữu và các loại quỹ tại công ty thực phẩm Hà Nội
Đang tải dữ liệu...
Gửi bình luận
♥ Tải tài liệu

markdown:
Hạch toán nguồn vốn chủ sở hữu và các loại quỹ tại công ty thực phẩm Hà Nội MỤC LỤC
Phần I : Quá trình hình thành và phát triển công ty
Phần II: Thực trạng công tác hạch toán kế toán tại công ty thực phẩm Hà Nội.
Chương I : Kế toánTSCĐ và chi phí khấu hao TSCĐ
I) Hạch toán TSCĐ
II) Kế toán hao mòn và tính khấu hao TSCĐ
III) Kế toán sửa chữa TSCĐ
Chương II: Hạch toán nguyên vật liệu và CCDC tại công ty thực phẩm Hà Nội.
I) Phương pháp hạch toán nguyên vật liệu tại công ty
II) Kế toán CCDC
Chương III: Kế toán tiền lương và các khoản trích theo lương tại công ty thực phẩm hà nội.
I) Phương pháp tính lương và các khoản tính theo lương.
II) Phương pháp kế toán tiền lương và các khoản thanh toán với công nhân viên.
Chương IV : Hạch toán chi phí sản xuất và tính giá thành sản phẩm tại công ty thực phẩm hà nội.
I) Đối tượng và phương pháp hạch toán chi phí sản xuất.
II) Tính giá thành sản phẩm tại công ty.
Chương V: Kế toán thành phẩm lao vụ đã hoàn thành
Chương VI : Kế toán tiêu thụ sản phẩm hàng hoá dịch vụ.
I) Phương thức bán hàng tại doanh nghiệp
II) Kế toán doanh thu bán hàng
III) Kế toán chi phí bán hàng và chi phí quản lý doanh nghiệp
Chương VII: Kế toán vốn bằng tiền
I) Kế toán tiền mặt
II) Kế toán tiền gửi ngân hàng
Chương VIII: Kế toán các nghiệp vụ thanh toán tại công ty thực phẩm hà nội
I) Kế toán các khoản phải thu
Chương IX: Kế toán hoạt động tài chính và chi phí bất thường
I) Kế toán thu nhập hoạt động tài chính và hoạt động bất thường.
II) Kế toán chi phí hoạt động tài chính, hoạt động bất thường
Chương X: Hạch toán nguồn vốn chủ sở hữu và các loại quỹ tại công ty thực phẩm hà nội
I) hạch toán nguồn vốn kinh doanh
II) Kế toán các quỹ
Chương XI: Kế toán kết quả kinh doanh và phân phối lãi tại công ty.
I) Kế toán kết quả kinh doanh
II) Kế toán phân phối lãi
Chương XII : Báo cáo kế toán
Phần III : kết luận
Xem Thêm:
[Hạch toán nguồn vốn chủ sở hữu và các loại quỹ tại công ty thực phẩm Hà Nội]Nội dung trên chỉ thể hiện một phần hoặc nhiều phần trích dẫn. Để có thể xem đầy đủ, chi tiết và đúng định dạng tài liệu, bạn vui lòng tải tài liệu. Hy vọng tài liệu [sẽ giúp ích cho bạn.] Hạch toán nguồn vốn chủ sở hữu và các loại quỹ tại công ty thực phẩm Hà Nội
- Gửi tài liệu
- Bình luận
-
## Hạch toán nguồn vốn chủ sở hữu và các loại quỹ tại công ty thực phẩm Hà Nội
[#1](threads/66057-hach-toan-nguon-von-chu-so-huu-va-cac-loai-quy-tai-cong-ty-thuc-pham-ha-noi.html?s=5bfe7d16d53a046b42855ca6838f53c7&p=69351#post69351)
**CHUYÊN ĐỀ** [ Hạch toán nguồn vốn chủ sở hữu và các loại quỹ tại công ty thực phẩm Hà Nội](threads/66057-hach-toan-nguon-von-chu-so-huu-va-cac-loai-quy-tai-cong-ty-thuc-pham-ha-noi.html?s=5bfe7d16d53a046b42855ca6838f53c7)
Hạch toán nguồn vốn chủ sở hữu và các loại quỹ tại công ty thực phẩm Hà Nội
[Hạch toán nguồn vốn chủ sở hữu và các loại quỹ tại công ty thực phẩm Hà Nội](threads/66057-hach-toan-nguon-von-chu-so-huu-va-cac-loai-quy-tai-cong-ty-thuc-pham-ha-noi.html.html?s=5bfe7d16d53a046b42855ca6838f53c7)
Đang tải dữ liệu...
Gửi bình luận
♥ Tải tài liệu

WARC-Identified-Payload-Type: application/xhtml+xml

Server: Apache/2.2.15 (CentOS)

Pragma: private

Cache-Control: private, must-revalidate

Content-Type: text/html; charset=UTF-8


text:
Fois Vietnam
【Thời gian làm việc】
- Thứ 2 ~ thứ 6 : 8:00 ~ 17:30
- Thứ 7 : 8:00 ~ 12:00 ( 1 ngày/ tháng )
- Ngày nghỉ :
Thứ bảy, chủ nhật và các ngày lễ ( theo lịch Việt Nam )
【Lương】
- Trên 8.000.000 - 15.000.000 VND ( tùy vào năng lực và kinh nghiệm )
- Thời gian thử việc : 2 tháng
- Thưởng : 1 lần/ năm
【Nội dung công việc】
- Thực hiện việc kết toán hàng tháng, hàng năm
- Lập bảng báo cáo tài chính
- Thực hiện công việc thu chi, xuất phiếu thu cho khách hàng
- Thực hiện xin các loại giấy phép kinh doanh
- Điều tra thị trường
- Quản lý hợp đồng lao động, quản lý nhân sự
- Đối ứng các công việc tổng vụ.
- Ứng viên có kinh nghiệm kế toán
- Rất hoan nghênh những ứng viên có kinh nghiệm và bằng cấp
- Ứng viên có khả năng tập trung cao về số học
- Ứng viên có thể thực hiện bảng tính
- Ứng viên giỏi Excel
- Hoan nghênh những ứng viên biết tiếng Nhật
- Các ứng viên quan tâm có thể nộp hồ sơ trực tuyến, gửi kèm file hay trực tiếp đến công ty
We are FOIS group companies with offices in Japan (Tokyo, Nagoya, Osaka) and Vietnam (Ho Chi Minh City) and Myanmar (Yangon).
The parent company will celebrate Japanese FOIS Co., Ltd., its 25th anniversary this year.
① IT development
② Web site construction
③ Overseas support Business
④ Japanese, Vietnamese School Business
⑤ Restaurant Business
We has great hope, we will value our customers and all employees participate in the management and we will aim to number one company.
(1)Happiness: Of all employees will pursue the Happiness of both physically and spiritually.
(2)Originality: In continuation of Originality and ingenuity, will realize best IT products and the best service.
(3)Positive: Positive thinking X Enthusiasm X IT technology, we will challenge tomorrow.
(4)External: We has an international and External perspective, become a company a vibrant and active.
(5)Satisfaction: We value the people, and will continue to pursue customer Satisfaction best.
Success and business expansion of the Vietnam market.
Let's do our best to challenge with us !

markdown:
![](/images/common/person-lady.png?v491)
Fois Vietnam
**【Thời gian làm việc】**
- Thứ 2 ~ thứ 6 : 8:00 ~ 17:30
- Thứ 7 : 8:00 ~ 12:00 ( 1 ngày/ tháng )
- Ngày nghỉ :
Thứ bảy, chủ nhật và các ngày lễ ( theo lịch Việt Nam )
**【Lương】**
- Trên 8.000.000 - 15.000.000 VND ( tùy vào năng lực và kinh nghiệm )
- Thời gian thử việc : 2 tháng
- Thưởng : 1 lần/ năm
**【Nội dung công việc】**
- Thực hiện việc kết toán hàng tháng, hàng năm
- Lập bảng báo cáo tài chính
- Thực hiện công việc thu chi, xuất phiếu thu cho khách hàng
- Thực hiện xin các loại giấy phép kinh doanh
- Điều tra thị trường
- Quản lý hợp đồng lao động, quản lý nhân sự
- Đối ứng các công việc tổng vụ.
- Ứng viên có kinh nghiệm kế toán
- Rất hoan nghênh những ứng viên có kinh nghiệm và bằng cấp
- Ứng viên có khả năng tập trung cao về số học
- Ứng viên có thể thực hiện bảng tính
- Ứng viên giỏi Excel
- Hoan nghênh những ứng viên biết tiếng Nhật
**- Các ứng viên quan tâm có thể nộp hồ sơ trực tuyến, gửi kèm file hay trực tiếp đến công ty** **We are FOIS group companies with offices in Japan (Tokyo, Nagoya, Osaka) and Vietnam (Ho Chi Minh City) and Myanmar (Yangon).** **The parent company will celebrate Japanese FOIS Co., Ltd., its 25th anniversary this year.** **① IT development** **② Web site construction** **③ Overseas support Business** **④ Japanese, Vietnamese School Business** **⑤ Restaurant Business** **We has great hope, we will value our customers and all employees participate in the management and we will aim to number one company.** **(1)Happiness: Of all employees will pursue the Happiness of both physically and spiritually.** **(2)Originality: In continuation of Originality and ingenuity, will realize best IT products and the best service.** **(3)Positive: Positive thinking X Enthusiasm X IT technology, we will challenge tomorrow.** **(4)External: We has an international and External perspective, become a company a vibrant and active.** **(5)Satisfaction: We value the people, and will continue to pursue customer Satisfaction best.** **Success and business expansion of the Vietnam market.** **Let's do our best to challenge with us !**

Via: 1.1 varnish

Cache-Control: no-cache

Set-Cookie: device_view=full; expires=Sun, 18-Feb-2018 17:00:00 GMT; Max-Age=2640377; path=/; httponly

X-Varnish-Cache: MISS


text:
Mứt Tết là món ăn rất đặc biệt chỉ có trong ngày Tết của người Việt. Nguyên liệu để tạo nên mứt rất đa dạng, hầu như với bất cứ loại quả nào, bạn đều có thể làm mứt được. Tết năm nay, nếu đang tìm một loại mứt mới lạ thì bạn có thể xem cách làm mứt khế của chúng tôi dưới đây.
Cách làm mứt khế khi hoàn thành có vị chua ngọt, thơm mùi gừng ăn cực hấp dẫn mà không hề bị ngấy ngán hay quá ngọt như các loại mứt khác. Nói đến đây là quá hấp dẫn rồi phải không nào?
Khế chua: 1kg
Đường: 500g
Gừng
Nước vôi trong
Phèn chua
Nguyên liệu để bạn học cách làm mứt khế.
Để làm mứt khế ngon, bạn nên chọn quả khế già đã bắt đầu chín màu hơi vàng xanh. Không chọn quả quá xanh sẽ bị chua gắt và quả quá chín sẽ bị nhũn. Đem rửa sạch khế, cắt bỏ 2 đầu và riềm của quả khế. Tách khế thành từng múi, bỏ hạt.
Khế mang rửa sạch, tách múi, cắt vỏ đường diềm.
Ngâm khế vào bát nước vôi trong, sao cho nước vôi ngập mặt khế. Ngâm khế qua đêm (khoảng 10 tiếng). Sau đó vớt khế ra rửa lại với nước sạch vài lần để loại bỏ mùi vôi. Nước vôi trong sẽ giúp mứt được cứng hơn khi thành thành phẩm.
Ngâm vào nước vôi trong.
Dùng dao ép cho khế ra bớt nước chua, ép mạnh tay nhưng nên khéo léo để miếng khế không bị nát bét. Tốt nhất, bạn dùng dao có bản to để ép, vừa nhanh lại ép được toàn bộ múi khế. Nhất thiết phải ép nước chua, nếu không thì khi đã sên thành mứt, mứt sẽ bị chua gắt, không thể ăn nổi.
Dùng dao ép nước chua.
Đun sôi nước với khoảng 1 thìa cà phê phèn chua rồi cho khế vào chần qua trong khoảng 20 giây. Vớt khế ra, xả khế lại một lần nữa dưới vòi nước. Ăn thử xem khế đã đạt độ chua vừa ý chưa, nếu khế còn quá chua thì lại đem ép bớt nước chua một lần nữa.
Chần khế qua nước phèn chua rồi rửa sạch.
Cân đường và khế theo tỉ lệ 1 kg khế sẽ dùng khoảng 500g đường. Ướp khế với đường khoảng 3-4 tiếng cho đường tan.
Ướp khế với đường.
Cho cả khế lẫn nước đường ướp khế vào chảo rộng để sên mứt khế. Bạn nhớ để lửa thật nhỏ rồi thi thoảng đảo khế thật nhẹ tay để tránh khế bị nát.
Sên khế trên lửa nhỏ và đảo đều tay.
Khi nước sên mứt khế gần cạn, bắc gừng băm nhỏ vào chảo khế. Đảo nhẹ nhàng liên tục để gừng thấm vào từng miếng mứt khế.
Khi đường gần cạn, cho thêm gừng.
Khi khế chuyển màu vàng nâu, đường đã cạn hết và bắt đầu kéo tơ thì tắt bếp. Gắp từng miếng khế ra khay đem hong nắng hoặc cho vào tủ lạnh để lớp đường được ráo. Sau đó cất mứt khế vào lọ kín để bảo quản.
Khi thấy đường kéo sợi thì tắt bếp, gắp khế ra khay và để ráo.
Cach lam mut khe khá đơn giản phải không nào?
Mứt khế dẻo là một trong những món mứt Tết thơm ngon mà các bạn gái hay trổ tài làm cho dịp Tết. Khế chua được ép hết nước, chỉ còn độ chua vừa phải, thơm thơm mùi gừng, ngọt ngọt hài hòa cực ngon.
Công thức cho cách làm mứt khế dẻo trên đây sẽ giúp bạn làm mứt khế dễ dàng. Còn chờ gì nữa mà không làm mứt khế thơm ngon mùi gừng này với chúng tôi? Chắc chắn, Tết năm nay, bạn sẽ có món mứt tuyệt ngon mà lạ miệng đãi khách đấy.
Trông món mứt khế thật hấp dẫn phải không nào?
Mứt khế chua ngọt vô cùng dễ ăn.
Mứt khế sẽ giúp bạn có món mứt ngon miệng, lạ vị đãi khách dịp Tết đấy.
Ngoài mứt khế, bạn có thể tham khảo một vài món mứt khác ngoài cách làm mứt khế nhé:
* Cách làm mứt gừng kiểu mới tuyệt ngon đón Tết sum vầy
* Cách làm mứt đu đủ xanh cực dễ, vụng mấy cũng làm được
* Cách làm mứt dưa hấu từ phần cùi siêu hấp dẫn và đẹp mắt
Chúc các bạn thành công và ngon miệng cách làm mứt khế này nhé!

markdown:
Mứt Tết là món ăn rất đặc biệt chỉ có trong ngày Tết của người Việt. Nguyên liệu để tạo nên mứt rất đa dạng, hầu như với bất cứ loại quả nào, bạn đều có thể làm mứt được. Tết năm nay, nếu đang tìm một loại mứt mới lạ thì bạn có thể xem
**cách làm mứt khế** của chúng tôi dưới đây.
Cách làm mứt khế khi hoàn thành có vị chua ngọt, thơm mùi gừng ăn cực hấp dẫn mà không hề bị ngấy ngán hay quá ngọt như các loại mứt khác. Nói đến đây là quá hấp dẫn rồi phải không nào?
Khế chua: 1kg
Đường: 500g
Gừng
Nước vôi trong
Phèn chua
Nguyên liệu để bạn học cách làm mứt khế.
Để làm mứt khế ngon, bạn nên chọn quả khế già đã bắt đầu chín màu hơi vàng xanh. Không chọn quả quá xanh sẽ bị chua gắt và quả quá chín sẽ bị nhũn. Đem rửa sạch khế, cắt bỏ 2 đầu và riềm của quả khế. Tách khế thành từng múi, bỏ hạt.
Khế mang rửa sạch, tách múi, cắt vỏ đường diềm.
Ngâm khế vào bát nước vôi trong, sao cho nước vôi ngập mặt khế. Ngâm khế qua đêm (khoảng 10 tiếng). Sau đó vớt khế ra rửa lại với nước sạch vài lần để loại bỏ mùi vôi. Nước vôi trong sẽ giúp mứt được cứng hơn khi thành thành phẩm.
Ngâm vào nước vôi trong.
Dùng dao ép cho khế ra bớt nước chua, ép mạnh tay nhưng nên khéo léo để miếng khế không bị nát bét. Tốt nhất, bạn dùng dao có bản to để ép, vừa nhanh lại ép được toàn bộ múi khế. Nhất thiết phải ép nước chua, nếu không thì khi đã sên thành mứt, mứt sẽ bị chua gắt, không thể ăn nổi.
Dùng dao ép nước chua.
Đun sôi nước với khoảng 1 thìa cà phê phèn chua rồi cho khế vào chần qua trong khoảng 20 giây. Vớt khế ra, xả khế lại một lần nữa dưới vòi nước. Ăn thử xem khế đã đạt độ chua vừa ý chưa, nếu khế còn quá chua thì lại đem ép bớt nước chua một lần nữa.
Chần khế qua nước phèn chua rồi rửa sạch.
Cân đường và khế theo tỉ lệ 1 kg khế sẽ dùng khoảng 500g đường. Ướp khế với đường khoảng 3-4 tiếng cho đường tan.
Ướp khế với đường.
Cho cả khế lẫn nước đường ướp khế vào chảo rộng để sên mứt khế. Bạn nhớ để lửa thật nhỏ rồi thi thoảng đảo khế thật nhẹ tay để tránh khế bị nát.
Sên khế trên lửa nhỏ và đảo đều tay.
Khi nước sên mứt khế gần cạn, bắc gừng băm nhỏ vào chảo khế. Đảo nhẹ nhàng liên tục để gừng thấm vào từng miếng mứt khế.
Khi đường gần cạn, cho thêm gừng.
Khi khế chuyển màu vàng nâu, đường đã cạn hết và bắt đầu kéo tơ thì tắt bếp. Gắp từng miếng khế ra khay đem hong nắng hoặc cho vào tủ lạnh để lớp đường được ráo. Sau đó cất mứt khế vào lọ kín để bảo quản.
Khi thấy đường kéo sợi thì tắt bếp, gắp khế ra khay và để ráo.
Cach lam mut khe khá đơn giản phải không nào?
Mứt khế dẻo là một trong những món
** thơm ngon mà các bạn gái hay trổ tài làm cho dịp Tết. Khế chua được ép hết nước, chỉ còn độ chua vừa phải, thơm thơm mùi gừng, ngọt ngọt hài hòa cực ngon. mứt Tết**
Công thức cho cách làm mứt khế dẻo trên đây sẽ giúp bạn làm mứt khế dễ dàng. Còn chờ gì nữa mà không làm mứt khế thơm ngon mùi gừng này với chúng tôi? Chắc chắn, Tết năm nay, bạn sẽ có món mứt tuyệt ngon mà lạ miệng đãi khách đấy.
Trông món mứt khế thật hấp dẫn phải không nào?
Mứt khế chua ngọt vô cùng dễ ăn.
Mứt khế sẽ giúp bạn có món mứt ngon miệng, lạ vị đãi khách dịp Tết đấy.
Ngoài mứt khế, bạn có thể tham khảo một vài món mứt khác ngoài cách làm mứt khế nhé:
*** Cách làm mứt gừng kiểu mới tuyệt ngon đón Tết sum vầy** *** Cách làm mứt đu đủ xanh cực dễ, vụng mấy cũng làm được** *** Cách làm mứt dưa hấu từ phần cùi siêu hấp dẫn và đẹp mắt**
Chúc các bạn thành công và ngon miệng cách làm mứt khế này nhé!

Cache-Control: private


text:
Nguyên liệu:
- Nấm mỡ hoặc nấm rơm
- Dầu hào
- Tôm tươi
- Ngô non
- Ớt chuông các màu
- Bột năng
Cách làm:
- Tôm lột sạch vỏ, thái hạt lựu.
- Nấm, ngô non, ớt chuông các bạn cũng thái hạt lựu, ướp chút bột canh.
- Phi thơm hành, cho tôm vào xào chín, trút ra bát để riêng.
- Tiếp tục xào đến phần nấm, nguyên liệu chủ đạo của món ăn này là dầu hào nên các bạn sử dụng dầu hào để xào nấm.
- Kế đến, các bạn cho ngô non và ớt chuông vào đảo cùng.
- Sau khi nấm, ngô non và ớt chuông đã chín và ngấm gia vị, các bạn trút nốt phần tôm đã xào vào chảo, hạ nhỏ lửa.
- Hòa 1 bát nước với 1 thìa bột năng để tạo thành 1 hỗn hợp lỏng, loãng rồi dội vào chảo nấm sao cho gần ngập các nguyên liệu. Vặn bếp to lửa trở lại. Khi sôi, phần nước đó có độ hơi sóng sánh là đạt yêu cầu. Nêm nếm dầu hào 1 lần nữa cho vừa miệng, rưới thêm 1 thìa cà phê dầu ăn cho món ăn có độ bóng rồi tắt bếp.
Cho nấm xốt ra bát rồi cùng cả nhà thưởng thức nhé!

markdown:
**Nguyên liệu:**
- Nấm mỡ hoặc nấm rơm
- Dầu hào
- Tôm tươi
- Ngô non
- Ớt chuông các màu
- Bột năng
**Cách làm:**
- Tôm lột sạch vỏ, thái hạt lựu.
- Nấm, ngô non, ớt chuông các bạn cũng thái hạt lựu, ướp chút bột canh.
- Phi thơm hành, cho tôm vào xào chín, trút ra bát để riêng.
- Tiếp tục xào đến phần nấm, nguyên liệu chủ đạo của món ăn này là dầu hào nên các bạn sử dụng dầu hào để xào nấm.
- Kế đến, các bạn cho ngô non và ớt chuông vào đảo cùng.
- Sau khi nấm, ngô non và ớt chuông đã chín và ngấm gia vị, các bạn trút nốt phần tôm đã xào vào chảo, hạ nhỏ lửa.
- Hòa 1 bát nước với 1 thìa bột năng để tạo thành 1 hỗn hợp lỏng, loãng rồi dội vào chảo nấm sao cho gần ngập các nguyên liệu. Vặn bếp to lửa trở lại. Khi sôi, phần nước đó có độ hơi sóng sánh là đạt yêu cầu. Nêm nếm dầu hào 1 lần nữa cho vừa miệng, rưới thêm 1 thìa cà phê dầu ăn cho món ăn có độ bóng rồi tắt bếp.
*Cho nấm xốt ra bát rồi cùng cả nhà thưởng thức nhé!*


text:
Chợ xe máy
Phụ tùng
Tin tức
Khuyến mãi
Suzuka 8 Hours
Đăng nhập
|
Đăng ký
Đăng nhập
Đăng nhập bằng facebook
Đăng ký
Quên mật khẩu?
Tiếng Việt
English
Chợ xe máy
Phụ tùng
Phụ tùng
Phụ kiện
Phụ kiện bảo hộ
Mũ bảo hộ
Tìm kiếm
Đăng bán xe
Mở cửa hàng
Xe máy
Phân khối lớn
Xe độ
Hãng xe
HONDA
YAMAHA
Kawasaki
SUZUKI
DUCATI
Benelli
Lambretta
MV AGUSTA
PIAGGIO
AMERICAN IRONHORSE
HARLEY-DAVIDSON
aprilia
TRIUMPH
NORTON
KTM
BMW
Phân khối
-50cc
51cc-174cc
175cc-400cc
401cc-750cc
751cc-1000cc
1001cc-
Loại xe
Xe số
Xe côn tay
Xe tay ga
Classic
Cruiser
Sport bike
Naked bike
Chopper
Bobber
Drag
Street fighter
Touring
Sport touring
Off-road
Dirt Bike
Adventure (Dual-sport)
Tỉnh thành
Hồ Chí Minh
Hà Nội
Đà Nẵng
Cần Thơ
Khánh Hòa
Hải Phòng
An Giang
Bà Rịa-Vũng Tàu
Bắc Giang
Bắc Kạn
Xếp hạng dòng xe
Phổ biến nhất
Được xem nhiều nhất
Quan tâm nhiều nhất
Mới nhất
Hỗ trợ khách hàng
Biểu thuế nhập khẩu
Quy trình mua hàng
Mua phụ tùng chính hãng (OEM)
Đăng ký tài khoản Paypal
Chợ xe máy
Danh sách xe
NORTON
An Giang
Mua bán xe NORTON Chợ mua bán xe máy cũ mới giá tốt tại Webike.vn
0 Xe
Sắp xếp
Mới nhất
Giá thấp
Giá cao
ODO thấp
ODO cao
Xe phổ thông
Phân khối lớn
Hiển thị
20 Xe
50 Xe
100 Xe
200 Xe
Lọc theo:
An Giang
NORTON
Xóa hết
Không tìm thấy kết quả
TOP

X-Mod-Pagespeed: WVN

Cache-Control: max-age=0, no-cache

Set-Cookie: wbkuid=eyJpdiI6IjA5bWM3c2pmUmY1eGgxcUZEbEdIZlE9PSIsInZhbHVlIjoic1VcL1BvMXlzWncrM2ZVZEFDXC9tWHpRPT0iLCJtYWMiOiIwNjhiNThkZTNkYjI0ZjJmNWRiOGUxM2I1YmJlYzY5NDc1MmNjMjE0MzkyNWUwOTU3MmJmMTFlZDBhM2IzZjI0In0%3D; expires=Sun, 20-Jan-2013 03:28:33 GMT; Max-Age=-157680000; path=/; domain=www.webike.vn; httponly