Cú pháp cơ bản trong Python
Python Tutorial | by
Khi bắt đầu học bất kỳ ngôn ngữ nào, dù là ngôn ngữ tự nhiên hay ngôn ngữ lập trình, việc nắm vững "ngữ pháp" hay cú pháp là điều kiện tiên quyết để giao tiếp hiệu quả. Python, với triết lý thiết kế hướng đến sự đơn giản và dễ đọc, cung cấp một cú pháp trực quan, thân thiện cho cả những người mới bắt đầu lập trình. Bài này sẽ giới thiệu tổng quan về tầm quan trọng của cú pháp trong Python và những đặc điểm nổi bật giúp ngôn ngữ này trở nên dễ học, dễ viết, đặt nền tảng vững chắc tìm kiếm lập trình của bạn.
Các thành phần cơ bản của cú pháp Python
Để viết được các chương trình Python có ý nghĩa, bạn cần nắm vững những thành phần cơ bản nhất của cú pháp. Chúng giống như những viên gạch xây nên ngôi nhà lập trình của bạn.
Lời chú thích (Comments) #
-
Mục đích: Lời chú thích là những đoạn văn bản trong mã nguồn mà Python sẽ bỏ qua hoàn toàn khi chạy chương trình. Chúng không ảnh hưởng đến hoạt động của chương trình mà chỉ có một mục đích duy nhất: giúp lập trình viên giải thích code của mình. Điều này cực kỳ quan trọng để bạn (hoặc người khác) có thể hiểu lại mã sau này, đặc biệt là với những đoạn code phức tạp.
Cách dùng:
-
Cho một dòng: Dùng dấu thăng (
#
) ở đầu dòng hoặc sau một dòng code. Mọi thứ sau dấu#
trên cùng một dòng sẽ là chú thích. -
Cho nhiều dòng (Multi-line comments): Bạn có thể dùng ba dấu nháy kép
""" """
hoặc ba dấu nháy đơn''' '''
để tạo khối chú thích nhiều dòng. Mọi thứ bên trong cặp dấu này sẽ được coi là chú thích.
Ví dụ cơ bản:
# Đây là một lời chú thích một dòng. # Nó giúp giải thích đoạn code bên dưới. print("Hello, Python!") # Chú thích ngay trên cùng một dòng với code """ Đây là một lời chú thích trên nhiều dòng. Nó thường dùng để mô tả chức năng của một phần code lớn. """ ''' Bạn cũng có thể sử dụng ba dấu nháy đơn cho chú thích đa dòng. '''
Biến (Variables) =
-
Mục đích: Biến là những "chiếc hộp" dùng để lưu trữ dữ liệu trong chương trình của bạn. Mỗi chiếc hộp có một cái tên (tên biến) và có thể chứa một giá trị nào đó. Giá trị này có thể thay đổi trong quá trình chạy chương trình.
Cách đặt tên:
-
Tên biến phải bắt đầu bằng một chữ cái (a-z, A-Z) hoặc dấu gạch dưới (
_
). -
Không được bắt đầu bằng số.
-
Chỉ có thể chứa các chữ cái, số và dấu gạch dưới.
-
Phân biệt chữ hoa/thường:
ten
vàTen
là hai biến khác nhau. -
Không dùng từ khóa: Tránh dùng các từ khóa dành riêng cho Python (ví dụ:
if
,for
,print
). -
Quy ước tốt: Nên đặt tên biến dễ hiểu, có ý nghĩa và thường dùng chữ thường với dấu gạch dưới để tách các từ (ví dụ:
ten_nguoi_dung
).
Cách gán giá trị: Dùng dấu bằng (=
) để gán một giá trị cho biến.
Ví dụ cơ bản:
# Các tên biến hợp lệ ten = "Alice" _tuoi = 30 so_luong_san_pham = 100 gpa2024 = 3.5 # Các tên biến không hợp lệ (sẽ gây lỗi) # 10diem = 10 # Bắt đầu bằng số # ten-san-pham = "Áo" # Chứa dấu gạch ngang # if = True # Là từ khóa của Python # Gán lại giá trị cho biến diem = 9 print(diem) # Output: 9 diem = 10 # Giá trị của biến 'diem' được thay đổi print(diem) # Output: 10
Kiểu dữ liệu (Data Types) cơ bản
Python tự động nhận diện kiểu dữ liệu của biến dựa trên giá trị bạn gán cho nó. Dưới đây là các kiểu dữ liệu cơ bản bạn sẽ thường xuyên gặp:
Số (Numbers): Dùng để biểu diễn các giá trị số.
-
Số nguyên (Integers -
int
): Là các số nguyên không có phần thập phân (ví dụ: -5, 0, 100).
so_nguyen = 42 print(type(so_nguyen)) # Output: <class 'int'>
Số thực (Floating-point numbers - float
): Là các số có phần thập phân (ví dụ: 3.14, -0.5, 2.0).
pi = 3.14159 nhiet_do = 25.5 print(type(nhiet_do)) # Output: <class 'float'>
Chuỗi ký tự (Strings - str
): Dùng để lưu trữ văn bản.
Mục đích: Biểu diễn các đoạn văn bản, tên, địa chỉ, v.v.
Cách dùng: Các chuỗi ký tự được đặt trong dấu ngoặc kép (""
) hoặc dấu ngoặc đơn (''
).
Nối chuỗi: Bạn có thể nối nhiều chuỗi lại với nhau bằng toán tử +
.
Ví dụ:
ten_hoc_sinh = "Nguyen Van A" loi_chao = 'Xin chào' thong_tin = ten_hoc_sinh + " có số điểm là 9.5" # Nối chuỗi print(thong_tin) # Output: Nguyen Van A có số điểm là 9.5 print(type(loi_chao)) # Output: <class 'str'>
Giá trị Boolean (bool
): Dùng để biểu thị trạng thái đúng hoặc sai.
Mục đích: Thường được dùng trong các câu lệnh điều kiện để kiểm tra một trạng thái nào đó.
Chỉ có hai giá trị: True
(Đúng) và False
(Sai). Lưu ý: Chữ cái đầu tiên phải viết hoa.
Ví dụ:
co_mua = True het_tien = False print(type(co_mua)) # Output: <class 'bool'>
Các phép toán (Operators)
Python cung cấp nhiều loại phép toán để thực hiện các thao tác khác nhau trên dữ liệu.
Phép toán số học: Dùng cho các phép tính toán học cơ bản.
-
+
(Cộng),-
(Trừ),*
(Nhân),/
(Chia, kết quả luôn là số thực). -
//
(Chia lấy phần nguyên): Chỉ lấy phần nguyên của kết quả chia. -
%
(Chia lấy dư - Modulo): Trả về số dư của phép chia. -
**
(Lũy thừa): Nâng một số lên một số mũ. -
Ví dụ:
a = 10 b = 3 print(a + b) # Output: 13 print(a - b) # Output: 7 print(a * b) # Output: 30 print(a / b) # Output: 3.3333333333333335 (luôn là float) print(a // b) # Output: 3 (phần nguyên) print(a % b) # Output: 1 (số dư) print(a ** b) # Output: 1000 (10 mũ 3)
Phép toán so sánh: Dùng để so sánh hai giá trị và luôn trả về kết quả là True
hoặc False
.
-
==
(Bằng với) -
!=
(Khác với) -
>
(Lớn hơn) -
<
(Nhỏ hơn) -
>=
(Lớn hơn hoặc bằng) -
<=
(Nhỏ hơn hoặc bằng)
Ví dụ:
x = 5 y = 10 print(x == y) # Output: False print(x != y) # Output: True print(x < y) # Output: True print(x >= y) # Output: False
Phép toán logic: Dùng để kết hợp hoặc đảo ngược các điều kiện Boolean.
-
and
: Trả vềTrue
nếu cả hai điều kiện đềuTrue
. -
or
: Trả vềTrue
nếu một trong hai điều kiện làTrue
. -
not
: Đảo ngược giá trị Boolean (nếuTrue
thànhFalse
, nếuFalse
thànhTrue
).
Ví dụ:
diem = 8 gioi_tinh = "Nam" # Sử dụng 'and' if diem >= 7 and gioi_tinh == "Nam": print("Đạt điểm giỏi và là nam.") # Output: Đạt điểm giỏi và là nam. # Sử dụng 'or' if diem >= 9 or gioi_tinh == "Nữ": print("Điểm rất cao hoặc là nữ.") # Output: Điểm rất cao hoặc là nữ. # Sử dụng 'not' co_nang = True print(not co_nang) # Output: False
Hàm print()
-
Mục đích: Hàm
print()
là một trong những hàm quan trọng và được sử dụng nhiều nhất trong Python. Mục đích của nó là hiển thị (in) thông tin ra màn hình console (cửa sổ Command Prompt/Terminal). Đây là cách chính để bạn xem kết quả chương trình của mình. -
Cách dùng cơ bản: Đặt bất kỳ thứ gì bạn muốn in bên trong dấu ngoặc đơn
()
. -
Ví dụ:
print("Chào bạn!") # In ra một chuỗi văn bản print(123) # In ra một số nguyên ten = "Binh" print("Tên của tôi là:", ten) # In nhiều thứ cách nhau bởi dấu phẩy print(10 + 5) # In kết quả của một phép toán
Hàm input()
Mục đích: Hàm input()
dùng để nhận dữ liệu từ người dùng thông qua bàn phím. Khi hàm này được gọi, chương trình sẽ tạm dừng và chờ người dùng gõ gì đó rồi nhấn Enter.
Cách dùng cơ bản:
-
Bạn có thể cung cấp một chuỗi (prompt) bên trong dấu ngoặc đơn để hiển thị cho người dùng biết họ cần nhập gì.
-
Lưu ý: Hàm
input()
luôn trả về giá trị dưới dạng chuỗi ký tự (string), ngay cả khi người dùng nhập số. Nếu bạn muốn làm việc với số, bạn cần chuyển đổi nó (ví dụ: dùngint()
hoặcfloat()
).Ví dụ:
ten_cua_ban = input("Nhập tên của bạn: ") print("Xin chào, " + ten_cua_ban + "!") # Ví dụ với số (cần chuyển đổi) nam_sinh = input("Bạn sinh năm bao nhiêu? ") # Chuyển đổi chuỗi thành số nguyên để có thể thực hiện phép toán nam_sinh_so = int(nam_sinh) tuoi = 2025 - nam_sinh_so # Giả sử năm hiện tại là 2025 print("Bạn khoảng", tuoi, "tuổi.")
Thụt lề (Indentation)
Mục đích: Đây là một trong những quy tắc cú pháp quan trọng nhất và là đặc điểm nhận dạng của Python. Thụt lề không chỉ là để mã trông đẹp hơn mà nó còn được Python sử dụng để xác định các khối code (blocks of code). Điều này có nghĩa là, tất cả các dòng mã thuộc về cùng một khối (ví dụ: các lệnh bên trong một câu điều kiện if
, một vòng lặp for
, hoặc một hàm) phải có cùng mức thụt lề.
Quy ước: Thông thường, một mức thụt lề là 4 dấu cách (spaces). Bạn cũng có thể dùng phím Tab
, nhưng hãy cẩn thận không trộn lẫn tab và dấu cách trong cùng một file để tránh lỗi.
Ví dụ về khối code đơn giản:
diem = 9 if diem >= 8: # Đây là dòng bắt đầu một khối code print("Bạn đạt điểm Giỏi.") # Dòng này thụt lề 4 dấu cách print("Chúc mừng!") # Dòng này cũng thụt lề 4 dấu cách, thuộc cùng khối if else: # Đây là dòng bắt đầu một khối code khác print("Bạn cần cố gắng thêm.") # Dòng này thụt lề 4 dấu cách, thuộc khối else print("Kết thúc chương trình.") # Dòng này không thụt lề, không thuộc if/else # Ví dụ với vòng lặp for for i in range(3): # range(3) sẽ tạo ra các số 0, 1, 2 print(f"Lần lặp thứ {i + 1}") # Dòng này thụt lề, thuộc khối for print("Vòng lặp đã kết thúc.") # Dòng này không thụt lề
Nếu bạn không thụt lề đúng cách, Python sẽ báo lỗi IndentationError
.
Cấu trúc điều khiển dòng chảy (Control Flow - Giới thiệu) trong Python
Trong lập trình, cấu trúc điều khiển dòng chảy (Control Flow) là cách bạn hướng dẫn chương trình của mình thực hiện các lệnh theo một thứ tự nhất định, hoặc thực hiện lặp đi lặp lại một khối lệnh nào đó dựa trên các điều kiện. Đây là xương sống giúp chương trình của bạn "suy nghĩ" và "hành động" một cách thông minh.
Câu lệnh điều kiện if
/elif
/else
Mục đích: Các câu lệnh điều kiện cho phép chương trình của bạn ra quyết định và thực thi các khối mã khác nhau dựa trên việc một điều kiện nào đó là True
(đúng) hay False
(sai).
Cách dùng:
-
if
(Nếu): Nếu một điều kiện là đúng, thực hiện khối lệnh này. -
elif
(Nếu không thì nếu): Viết tắt của "else if". Nếu điều kiệnif
trước đó sai, thì kiểm tra điều kiệnelif
này. -
else
(Nếu không thì): Nếu tất cả các điều kiệnif
vàelif
trước đó đều sai, thì thực hiện khối lệnh này.
Ví dụ đơn giản:
diem = 7.5 if diem >= 8: print("Bạn đạt loại Giỏi.") elif diem >= 6.5: # Điều kiện này chỉ được kiểm tra nếu diem < 8 print("Bạn đạt loại Khá.") else: # Khối này chạy nếu diem < 6.5 print("Bạn cần cố gắng thêm.") # Output: Bạn đạt loại Khá. thoi_tiet = "nang" if thoi_tiet == "mua": print("Mang ô đi học.") elif thoi_tiet == "nang": print("Đội mũ khi ra ngoài.") else: print("Thời tiết bình thường.") # Output: Đội mũ khi ra ngoài.
Lưu ý việc thụt lề để xác định các khối lệnh của if
, elif
, và else
.
Vòng lặp for
(Duyệt qua các phần tử)
Mục đích: Vòng lặp for
được sử dụng để lặp lại một khối mã một số lần nhất định, thường là để duyệt qua từng phần tử trong một chuỗi (như chuỗi ký tự, danh sách) hoặc một dãy số.
Cách dùng: Vòng lặp for
thường hoạt động với hàm range()
để tạo ra một dãy số, hoặc trực tiếp duyệt qua các phần tử của một tập hợp.
Ví dụ đơn giản:
# Lặp lại 5 lần bằng cách dùng range() for i in range(5): # range(5) tạo ra dãy số từ 0 đến 4 print(f"Lần lặp thứ {i + 1}") # Output: # Lần lặp thứ 1 # Lần lặp thứ 2 # Lần lặp thứ 3 # Lần lặp thứ 4 # Lần lặp thứ 5 # Duyệt qua các ký tự trong một chuỗi ten_ban = "Python" for ky_tu in ten_ban: print(f"Ký tự: {ky_tu}") # Output: # Ký tự: P # Ký tự: y # Ký tự: t # Ký tự: h # Ký tự: o # Ký tự: n
Vòng lặp while
(Lặp khi điều kiện còn đúng)
Mục đích: Vòng lặp while
được sử dụng để lặp lại một khối mã chừng nào một điều kiện nào đó vẫn còn đúng (True
). Vòng lặp này sẽ tiếp tục chạy cho đến khi điều kiện trở thành False
.
Cách dùng: Bạn cần đảm bảo rằng có một điểm nào đó trong vòng lặp làm thay đổi điều kiện, nếu không vòng lặp sẽ chạy mãi mãi (gọi là vòng lặp vô hạn - infinite loop).
Ví dụ đơn giản:
dem = 1 while dem <= 3: # Điều kiện: dem nhỏ hơn hoặc bằng 3 print(f"Số hiện tại là: {dem}") dem = dem + 1 # Tăng giá trị của dem lên 1 sau mỗi lần lặp print("Vòng lặp đã kết thúc.") # Output: # Số hiện tại là: 1 # Số hiện tại là: 2 # Số hiện tại là: 3 # Vòng lặp đã kết thúc. # Ví dụ khác: Đếm ngược so_dem_nguoc = 5 while so_dem_nguoc > 0: print(so_dem_nguoc) so_dem_nguoc -= 1 # Viết tắt của so_dem_nguoc = so_dem_nguoc - 1 print("Lift off!") # Output: # 5 # 4 # 3 # 2 # 1 # Lift off!
Việc hiểu và vận dụng các cấu trúc điều khiển dòng chảy này là rất quan trọng, vì chúng cho phép chương trình của bạn thực hiện các tác vụ phức tạp và có tính logic.
Kết bài
Việc nắm vững cú pháp cơ bản của Python là bước khởi đầu quan trọng và thú vị trên con đường lập trình của bạn. Từ sự rõ ràng trong cách sử dụng thụt lề để định nghĩa khối mã, đến tính trực quan của các biến, kiểu dữ liệu và phép toán, Python được thiết kế để dễ đọc và dễ viết. Các cấu trúc điều khiển dòng chảy như if/elif/else
và vòng lặp for
/while
là những công cụ mạnh mẽ giúp bạn điều khiển logic chương trình một cách linh hoạt. Với một cú pháp thân thiện và dễ tiếp cận, Python không chỉ giúp bạn nhanh chóng biến ý tưởng thành code mà còn khuyến khích bạn phát triển thói quen viết mã sạch và dễ bảo trì. Hãy tiếp tục thực hành và khám phá để trở nên thành thạo hơn với ngôn ngữ lập trình đầy tiềm năng này!