Python được biết đến là một trong những ngôn ngữ lập trình có cú pháp đơn giản và dễ tiếp cận nhất, đặc biệt phù hợp với những người mới bắt đầu. Tuy nhiên, “dễ viết” không có nghĩa là có thể bỏ qua các quy tắc cú pháp. Chỉ cần thiếu một dấu :, sai khoảng trắng hoặc thụt lề không đúng, chương trình Python có thể lập tức báo lỗi.
Nếu mới học Python, bạn không cần cố gắng ghi nhớ hàng trăm câu lệnh ngay từ đầu. Điều quan trọng hơn là hiểu cách Python tổ chức và đọc một đoạn code: câu lệnh được viết như thế nào, block được xác định ra sao, indentation có ý nghĩa gì, comment được sử dụng thế nào và đâu là những lỗi cú pháp thường gặp.
Trong bài viết này, chúng ta sẽ cùng tìm hiểu cú pháp Python cơ bản từ những nguyên tắc đầu tiên đến một đoạn chương trình hoàn chỉnh. Đây sẽ là nền tảng cần thiết trước khi bạn đi sâu hơn vào biến, kiểu dữ liệu, câu lệnh điều kiện, vòng lặp hay hàm trong Python.
1. Cú pháp Python là gì?

1.1. Cú pháp trong lập trình là gì?
Cú pháp (syntax) là tập hợp những quy tắc quy định cách viết mã nguồn để máy tính có thể hiểu và thực thi chương trình.
Có thể hình dung đơn giản thế này: khi giao tiếp bằng tiếng Việt, chúng ta cần tuân theo những quy tắc về từ ngữ và ngữ pháp để người khác hiểu được câu nói. Trong lập trình cũng tương tự. Mỗi ngôn ngữ có một “ngữ pháp” riêng và Python cũng không ngoại lệ.
Ví dụ, câu lệnh sau hoàn toàn hợp lệ:
print("Hello Python")Trong khi đó:
print("Hello Python"lại thiếu dấu ) nên Python không thể phân tích câu lệnh một cách chính xác.
Điều thú vị là Python có cú pháp khá gần với cách con người diễn đạt. Vì vậy, khi nhìn vào một đoạn code Python đơn giản, bạn thường có thể đoán được chương trình đang làm gì ngay cả khi chưa biết quá nhiều về lập trình.
1.2. Vì sao cần hiểu cú pháp Python?
Hiểu cú pháp giúp bạn viết code đúng ngay từ những bước đầu tiên và quan trọng hơn là đọc được code của người khác.
Khi học Python, bạn sẽ gặp rất nhiều đoạn chương trình trên tài liệu, sách, khóa học hoặc GitHub. Nếu chưa nắm được các quy tắc cơ bản, bạn sẽ dễ rơi vào tình trạng nhìn code nhưng không hiểu vì sao nó được viết như vậy.
Một khi đã hiểu cú pháp, việc học những kiến thức phức tạp hơn sẽ nhẹ nhàng hơn rất nhiều.
1.3. Đặc điểm nổi bật trong cú pháp Python
Một số đặc điểm khiến cú pháp Python trở nên khác biệt gồm:
- Cú pháp ngắn gọn, dễ đọc.
- Không bắt buộc phải sử dụng dấu
;ở cuối câu lệnh. - Python sử dụng indentation để xác định các block code.
- Python phân biệt chữ hoa và chữ thường.
- Dấu
:có vai trò quan trọng trong nhiều cấu trúc. - Code thường được trình bày gần với cách con người đọc một văn bản.
Chính những đặc điểm này khiến Python dễ tiếp cận, nhưng đồng thời cũng tạo ra một số quy tắc mà người mới cần làm quen.
2. Cấu trúc cơ bản của một chương trình Python
2.1. Câu lệnh trong Python
Một chương trình Python được tạo thành từ các câu lệnh. Mỗi câu lệnh thực hiện một nhiệm vụ nhất định.
Ví dụ:
print("Xin chào Python")Đây là một câu lệnh yêu cầu Python hiển thị dòng chữ Xin chào Python ra màn hình.
Một chương trình đơn giản có thể gồm nhiều câu lệnh:
name = "Python"
print("Xin chào")
print(name)Thông thường, mỗi câu lệnh được đặt trên một dòng riêng. Cách trình bày này giúp code dễ đọc và dễ kiểm tra hơn.
2.2. Python phân biệt chữ hoa và chữ thường
Python là ngôn ngữ case-sensitive, nghĩa là chữ hoa và chữ thường được xem là khác nhau.
Ví dụ:
name = "An"
Name = "Bình"name và Name là hai tên khác nhau.
Đây là một chi tiết nhỏ nhưng người mới rất dễ mắc lỗi. Chẳng hạn, bạn tạo một tên là username nhưng ở dòng khác lại viết thành userName, Python sẽ không tự hiểu rằng hai tên này là một.
Vì vậy, hãy hình thành thói quen viết tên nhất quán ngay từ đầu.
2.3. Dấu : trong Python
Dấu hai chấm : xuất hiện trong nhiều cấu trúc quan trọng của Python. Nó thường báo hiệu rằng phía sau sẽ là một block code.
Ví dụ:
if age >= 18:
print("Bạn đã đủ tuổi")Ở đây, dấu : sau điều kiện if cho Python biết rằng phần code bên dưới thuộc về block của câu lệnh if.
Tương tự, dấu : cũng xuất hiện trong các cấu trúc như vòng lặp và hàm:
for number in numbers:
print(number)def hello():
print("Hello")Bạn chưa cần học chi tiết if, for hay def ở giai đoạn này. Chỉ cần nhớ một nguyên tắc: khi một cấu trúc Python mở ra một block code, dấu : thường đứng ở cuối dòng mở đầu.
3. Thụt lề (Indentation) trong Python
Nếu phải chọn một đặc điểm cú pháp mà người mới học Python cần đặc biệt chú ý, mình sẽ chọn indentation.
Ở nhiều ngôn ngữ lập trình, block code thường được xác định bằng cặp dấu { }. Python lại sử dụng khoảng trắng đầu dòng để xác định cấu trúc này.
3.1. Indentation là gì?
Indentation là khoảng trắng được đặt ở đầu dòng code nhằm thể hiện cấp độ của câu lệnh.
Ví dụ:
if True:
print("Hello Python")Dòng print() được thụt vào phía trong nên Python hiểu rằng nó thuộc block của if.
Nếu có nhiều dòng cùng nằm trong một block, chúng cần có mức thụt lề nhất quán:
if True:
print("Dòng thứ nhất")
print("Dòng thứ hai")
print("Dòng thứ ba")3.2. Python sử dụng indentation để xác định block
Đây là điểm rất quan trọng.
Ví dụ:
if True:
print("Python")
print("Hoàn thành")Dòng đầu tiên nằm trong block if, còn dòng cuối nằm ngoài block.
Nếu thay đổi indentation:
if True:
print("Python")
print("Hoàn thành")thì cả hai dòng print() đều thuộc block if.
Nói cách khác, indentation không chỉ để code đẹp hơn mà còn ảnh hưởng trực tiếp đến cách chương trình được thực thi.
3.3. Quy tắc thụt lề trong Python
Quy ước phổ biến trong Python là sử dụng 4 khoảng trắng (spaces) cho mỗi cấp indentation.
Ví dụ:
if condition:
print("Level 1")
if another_condition:
print("Level 2")Bạn cũng cần tránh việc trộn lẫn Tab và Space trong cùng một đoạn code. Một số trình soạn thảo hiện nay đã hỗ trợ tự động xử lý việc này, nhưng hiểu nguyên tắc vẫn rất cần thiết.
3.4. Lỗi indentation thường gặp
Một đoạn code sai indentation có thể khiến Python báo IndentationError hoặc TabError.
Ví dụ:
if True:
print("Hello")Dòng print() không được thụt lề nên cấu trúc không hợp lệ.
Một trường hợp khác:
if True:
print("Hello")
print("Python")Hai dòng không có cùng mức indentation dù chúng cùng nằm trong một block.
Khi gặp lỗi indentation, đừng vội nghĩ rằng Python quá khó. Hãy kiểm tra khoảng trắng đầu mỗi dòng và xem các câu lệnh cùng block đã được thụt lề giống nhau hay chưa.
4. Cách viết câu lệnh trong Python
4.1. Một câu lệnh trên một dòng
Cách viết phổ biến và dễ đọc nhất là đặt mỗi câu lệnh trên một dòng:
name = "Python"
age = 30
print(name)
print(age)Cách trình bày này đặc biệt hữu ích khi bạn mới học vì rất dễ xác định câu lệnh nào đang gây ra lỗi.
4.2. Nhiều câu lệnh trên một dòng
Python cho phép sử dụng dấu ; để viết nhiều câu lệnh trên cùng một dòng:
a = 10; b = 20Đoạn code trên vẫn có thể được Python thực thi. Tuy nhiên, trong code thực tế, bạn thường không nên lạm dụng cách viết này.
Thay vào đó:
a = 10
b = 20sẽ dễ đọc và dễ bảo trì hơn.
Đây cũng là một trong những điều mình nghĩ người mới nên ghi nhớ: biết Python cho phép điều gì không đồng nghĩa với việc đó luôn là cách viết tốt nhất.
4.3. Câu lệnh nhiều dòng
Khi một câu lệnh quá dài, Python cho phép bạn chia nó thành nhiều dòng.
Ví dụ:
total = (10 + 20 + 30 +
40 + 50)Việc đặt biểu thức bên trong dấu ngoặc giúp Python hiểu rằng câu lệnh vẫn chưa kết thúc.
Cách này thường dễ đọc hơn so với việc cố viết toàn bộ câu lệnh trên một dòng.
5. Chuỗi và cách viết chuỗi trong Python
Chuỗi (string) là một thành phần xuất hiện rất thường xuyên trong các chương trình Python. Ở phạm vi bài viết này, chúng ta chỉ tập trung vào cách viết chuỗi đúng cú pháp.
5.1. Chuỗi với dấu nháy đơn
Bạn có thể tạo một chuỗi bằng dấu nháy đơn:
name = 'Python'5.2. Chuỗi với dấu nháy kép
Python cũng cho phép sử dụng dấu nháy kép:
name = "Python"Hai cách viết trên đều hợp lệ.
Điều quan trọng là dấu mở và dấu đóng phải tương ứng:
name = "Python"Không nên viết:
name = "Python'vì dấu nháy không được đóng đúng cách.
5.3. Chuỗi nhiều dòng
Nếu cần tạo một chuỗi kéo dài trên nhiều dòng, bạn có thể sử dụng ba dấu nháy đơn hoặc ba dấu nháy kép:
message = """Xin chào
Chào mừng bạn đến với Python"""Cách này thường được sử dụng khi nội dung chuỗi cần giữ cấu trúc nhiều dòng.
5.4. f-string trong Python
Python cung cấp f-string để chèn giá trị vào chuỗi một cách thuận tiện:
name = "An"
print(f"Xin chào, {name}!")Trong ví dụ trên, {name} sẽ được thay bằng giá trị hiện tại của biến name.
f-string rất phổ biến trong Python hiện đại và bạn sẽ gặp nó khá thường xuyên khi đọc code.
6. Comment và chú thích trong Python
Comment là phần ghi chú dành cho người đọc code. Python sẽ không thực thi nội dung của comment như một câu lệnh thông thường.

6.1. Comment một dòng
Comment một dòng được bắt đầu bằng ký tự #:
# Đây là comment
print("Hello Python")Comment đặc biệt hữu ích khi bạn muốn giải thích mục đích của một đoạn code.
6.2. Comment ở cuối câu lệnh
Bạn cũng có thể viết comment phía sau câu lệnh:
print("Hello Python") # In lời chàoTuy nhiên, không nên biến comment thành phần mô tả cho từng dòng code một cách máy móc. Một đoạn code rõ ràng vốn đã tự giải thích được phần lớn ý nghĩa của nó.
6.3. Docstring là gì?
Khi làm việc với hàm, class hoặc module, bạn có thể gặp docstring:
def hello():
"""Hàm dùng để in lời chào."""
print("Hello")Docstring thường được sử dụng để mô tả mục đích hoặc cách sử dụng của một thành phần trong chương trình.
Docstring không hoàn toàn giống comment. Đây là điểm người mới nên biết để tránh gọi mọi nội dung nằm giữa """ """ là comment nhiều dòng.
7. Dòng trống và khoảng trắng trong Python
7.1. Dòng trống có ảnh hưởng đến chương trình không?
Trong nhiều trường hợp, dòng trống không làm thay đổi kết quả thực thi chương trình. Tuy nhiên, nó có tác dụng rất lớn đối với khả năng đọc code.
Ví dụ:
name = "Python"
age = 30
print(name)
print(age)Dòng trống giúp tách các nhóm logic khác nhau, khiến code thoáng và dễ theo dõi hơn.
7.2. Khoảng trắng trong biểu thức
Python không yêu cầu bạn phải đặt khoảng trắng ở mọi vị trí, nhưng cách trình bày nhất quán sẽ giúp code dễ đọc hơn.
Ví dụ:
total = 10 + 20dễ nhìn hơn:
total=10+20Cả hai đều có thể hoạt động, nhưng cách đầu tiên rõ ràng hơn đối với con người.
7.3. Quy tắc trình bày code dễ đọc
Khi mới học, bạn chưa cần ghi nhớ toàn bộ quy tắc của PEP 8. Chỉ cần hình thành một vài thói quen:
- Sử dụng indentation nhất quán.
- Đặt khoảng trắng hợp lý quanh toán tử.
- Không viết nhiều câu lệnh trên một dòng nếu không cần thiết.
- Tách các nhóm code bằng dòng trống.
- Ưu tiên sự rõ ràng thay vì cố viết code thật ngắn.
8. Nhập và xuất dữ liệu cơ bản
8.1. Xuất dữ liệu với print()
print() là một trong những hàm đầu tiên mà hầu hết người học Python đều làm quen:
print("Hello Python")Bạn cũng có thể truyền nhiều giá trị:
name = "An"
age = 20
print(name, age)Ngoài cách sử dụng cơ bản, print() còn có các tham số như sep và end.
Ví dụ:
print("Python", "Java", "C++", sep=" - ")Kết quả:
Python - Java - C++8.2. Nhập dữ liệu với input()
Nếu print() giúp chương trình xuất thông tin thì input() cho phép nhận dữ liệu từ người dùng:
name = input("Nhập tên của bạn: ")Khi chương trình chạy, người dùng có thể nhập tên từ bàn phím.
input() là một cú pháp rất cơ bản nhưng cực kỳ hữu ích khi bắt đầu xây dựng những chương trình có tính tương tác.
8.3. Lưu ý khi sử dụng input()
Một điểm quan trọng cần nhớ là dữ liệu nhận từ input() mặc định được trả về dưới dạng chuỗi.
Ví dụ:
age = input("Nhập tuổi: ")Nếu người dùng nhập 20, giá trị nhận được vẫn là chuỗi "20".
Việc chuyển đổi dữ liệu sang số nguyên hoặc số thực sẽ được tìm hiểu kỹ hơn trong bài viết riêng về kiểu dữ liệu và chuyển đổi kiểu dữ liệu trong Python.
9. Quy tắc đặt tên trong Python

9.1. Identifier là gì?
Identifier là tên được sử dụng để định danh các thành phần trong chương trình, chẳng hạn như biến, hàm hoặc class.
Ví dụ:
user_name = "An"
total_price = 100000Ở đây user_name và total_price là những identifier.
9.2. Quy tắc đặt tên
Một số quy tắc cơ bản:
- Tên có thể chứa chữ cái, chữ số và dấu gạch dưới
_. - Không được bắt đầu bằng chữ số.
- Không chứa khoảng trắng.
- Không sử dụng keyword của Python làm tên.
- Python phân biệt chữ hoa và chữ thường.
Ví dụ hợp lệ:
name = "An"
user_name = "An"
age2 = 20
_total = 100Ví dụ không hợp lệ:
2name = "An"
user name = "An"9.3. Quy ước đặt tên nên áp dụng
Ngoài việc tuân thủ cú pháp, bạn cũng nên đặt tên sao cho người khác có thể hiểu code đang làm gì.
Ví dụ:
user_name = "An"
total_price = 500000sẽ dễ hiểu hơn những cái tên như:
x = "An"
a = 500000Đặc biệt khi chương trình ngày càng lớn, việc đặt tên rõ ràng sẽ giúp bạn tiết kiệm rất nhiều thời gian khi quay lại đọc code.
10. Một số từ khóa Python cần biết
10.1. Keyword là gì?
Keyword là những từ khóa được Python dành riêng cho một mục đích cụ thể trong ngôn ngữ.
Một số keyword quen thuộc gồm:
if
else
for
while
def
return
class
import
True
False
NoneBạn sẽ gặp chúng rất thường xuyên khi học Python.
10.2. Vì sao cần biết keyword?
Bởi keyword không thể được sử dụng tùy ý làm identifier.
Ví dụ:
class = "Python"đây là cách viết không hợp lệ vì class đã được Python sử dụng như một từ khóa.
Bạn không cần học thuộc toàn bộ danh sách keyword ngay lập tức. Chỉ cần hiểu rằng Python có một nhóm từ được “đặt trước” và không thể tùy tiện sử dụng như tên biến hay tên hàm.
11. Một số lỗi cú pháp Python người mới thường gặp
Khi mới học Python, việc gặp lỗi là hoàn toàn bình thường. Thậm chí, mình cho rằng đọc lỗi và sửa lỗi cũng là một phần của quá trình học lập trình.
11.1. Quên dấu :
Ví dụ:
if age >= 18
print("Đủ tuổi")Dòng if thiếu dấu : ở cuối nên Python sẽ báo lỗi cú pháp.
Cách sửa:
if age >= 18:
print("Đủ tuổi")11.2. Sai indentation
if True:
print("Hello")print() cần được thụt lề để thuộc block if:
if True:
print("Hello")11.3. Thiếu hoặc thừa dấu ngoặc
Ví dụ:
print("Hello"Đoạn code thiếu dấu ).
Cách sửa:
print("Hello")11.4. Không đóng dấu nháy
Ví dụ:
name = "PythonChuỗi bắt đầu bằng " nhưng không có dấu " kết thúc.
11.5. Sử dụng keyword sai cách
class = "Python"class là keyword nên không thể sử dụng như tên biến.
11.6. Nhầm chữ hoa và chữ thường
Ví dụ:
name = "An"
print(Name)Python sẽ không xem Name và name là cùng một tên.
Nếu gặp lỗi liên quan đến tên, hãy kiểm tra thật kỹ từng ký tự thay vì chỉ nhìn lướt qua.
12. Quy tắc viết code Python dễ đọc
Viết code chạy được mới chỉ là bước đầu. Khi đã học lập trình nghiêm túc, bạn sẽ nhận ra rằng code dễ đọc cũng quan trọng không kém code đúng.
12.1. Ưu tiên code rõ ràng
Đừng cố làm cho code ngắn nhất có thể nếu việc đó khiến người khác khó hiểu.
Ví dụ:
user_name = "An"rõ ràng hơn:
x = "An"12.2. Sử dụng 4 spaces cho indentation
Đây là quy ước phổ biến trong Python và cũng giúp code có cấu trúc nhất quán.
12.3. Mỗi câu lệnh nên nằm trên một dòng
Thay vì:
name = "An"; age = 20; print(name)nên viết:
name = "An"
age = 20
print(name)12.4. Đặt tên có ý nghĩa
Một cái tên tốt có thể giúp bạn hiểu code mà không cần đọc thêm comment.
Ví dụ:
total_price = 500000tốt hơn:
x = 50000012.5. Sử dụng comment khi thực sự cần thiết
Comment nên giải thích những điều mà code khó thể hiện trực tiếp, thay vì lặp lại chính xác những gì câu lệnh đang làm.
12.6. Làm quen với PEP 8
PEP 8 là tài liệu quy định các quy ước về phong cách viết code Python. Đây không phải thứ bạn cần học thuộc ngay khi mới bắt đầu.
Tuy nhiên, càng sớm hình thành thói quen viết code sạch và nhất quán, bạn càng dễ thích nghi với các dự án thực tế sau này.
13. Ví dụ tổng hợp cú pháp Python cơ bản
Đến đây, thay vì tiếp tục học từng quy tắc riêng lẻ, chúng ta thử kết hợp một số kiến thức vừa tìm hiểu vào một chương trình nhỏ.
# Nhập tên người dùng
name = input("Nhập tên của bạn: ")
if name:
print(f"Xin chào, {name}!")
else:
print("Bạn chưa nhập tên.")
Đoạn code ngắn này chứa khá nhiều thành phần cú pháp quan trọng.
Comment:
# Nhập tên người dùngDòng bắt đầu bằng # là comment, được sử dụng để mô tả mục đích của đoạn code.
Nhập dữ liệu:
name = input("Nhập tên của bạn: ")Chương trình sử dụng input() để nhận dữ liệu từ người dùng.
Dấu ::
if name:Dấu : cho biết phía sau sẽ là một block code.
Indentation:
print(f"Xin chào, {name}!")Dòng print() được thụt vào để xác định nó thuộc block của if.
f-string:
f"Xin chào, {name}!"Cho phép đưa giá trị của name vào trong chuỗi.
else:
else:
print("Bạn chưa nhập tên.")else tạo ra một nhánh xử lý khác và cũng sử dụng dấu : cùng indentation.
Như vậy, chỉ với vài dòng code, chúng ta đã kết hợp được nhiều quy tắc cú pháp khác nhau. Đây cũng là cách mình khuyên người mới nên học: học một khái niệm, viết một đoạn code nhỏ và quan sát cách các thành phần kết hợp với nhau.
14. Kết luận
Cú pháp Python cơ bản không quá khó, nhưng lại là nền móng cho tất cả những kiến thức bạn sẽ học sau này. Nếu ngay từ đầu bạn hiểu cách Python tổ chức câu lệnh, sử dụng indentation, dấu :, comment, chuỗi, print(), input() và quy tắc đặt tên, việc tiếp cận những chủ đề phức tạp hơn sẽ dễ dàng hơn rất nhiều.
Điều quan trọng là bạn không cần học thuộc mọi cú pháp ngay lập tức. Khi mới bắt đầu, hãy tập trung vào việc hiểu Python “đọc” code như thế nào, sau đó luyện tập bằng những chương trình nhỏ.
Từ nền tảng này, bạn có thể tiếp tục tìm hiểu biến và kiểu dữ liệu trong Python, sau đó mở rộng sang toán tử, câu lệnh điều kiện, vòng lặp, cấu trúc dữ liệu và hàm.
Lập trình không phải là cuộc thi xem ai nhớ nhiều câu lệnh nhất. Điều quan trọng hơn là bạn hiểu mình đang viết gì, vì sao phải viết như vậy và có thể tự tìm ra vấn đề khi chương trình xảy ra lỗi. Khi đã hình thành được thói quen đó, Python sẽ trở nên thân thiện hơn rất nhiều.
Tài liệu tham khảo
[1] Python Software Foundation, “The Python Tutorial,” Python 3 Documentation. [Online]. Available: Python Documentation – The Python Tutorial. [Accessed: Sep. 3, 2026].
[2] Python Software Foundation, “Lexical analysis,” Python 3 Language Reference. [Online]. Available: Python Language Reference – Lexical analysis. [Accessed: Sep. 3, 2026].
[3] Python Software Foundation, “Simple statements,” Python 3 Language Reference. [Online]. Available: Python Language Reference – Simple statements. [Accessed: Sep. 3, 2026].
[4] Python Software Foundation, “Compound statements,” Python 3 Language Reference. [Online]. Available: Python Language Reference – Compound statements. [Accessed: Sep. 3, 2026].
[5] Python Software Foundation, “Built-in Functions,” Python 3 Documentation. [Online]. Available: Python Built-in Functions. [Accessed: Sep. 3, 2026].
[6] Python Software Foundation, “PEP 8 – Style Guide for Python Code,” Python Enhancement Proposals. [Online]. Available: PEP 8 – Style Guide for Python Code. [Accessed: Sep. 3, 2026].
[7] Python Software Foundation, “Keywords,” Python 3 Documentation. [Online]. Available: Python Keywords Documentation. [Accessed: Sep. 3, 2026].






















