Vòng lặp trong Python
Python cung cấp hai dạng vòng lặp chính: for và while, mỗi loại phục vụ những mục đích khác nhau.
Vòng lặp for
Dùng để lặp qua một dãy giá trị hoặc tập hợp đã biết trước:
# Lặp theo dải số
for idx in range(3, 8):
print(idx)
# Lặp trực tiếp qua danh sách
for item in ['apple', 'banana', 'cherry']:
print(item)
# Lồng ghép nhiều vòng lặp
for row in range(1, 4):
for col in range(1, 5):
print(f"({row}, {col})")
Hàm range(start, stop, step) tạo dãy số nguyên với bước nhảy tùy chọn — tham số start và step có thể bỏ qua.
Vòng lặp while
Thích hợp khi không xác định trước số lần lặp, thường dùng để chờ điều kiện dừng:
user_input = ""
while user_input != "exit":
user_input = input("Nhập lệnh (gõ 'exit' để thoát): ")
Lưu ý: nên tránh dùng while nếu có thể thay thế bằng for — dễ kiểm soát và ít rủi ro vô hạn.
Điều khiển vòng lặp
break: thoát hoàn toàn khỏi vòng lặp hiện tại.continue: bỏ qua phần còn lại của lần lặp hiện tại, chuyển sang lần tiếp theo.pass: giữ chỗ, không làm gì — hữu ích khi cần cú pháp hợp lệ nhưng chưa muốn xử lý.
Xử lý chuỗi trong Python
Chuỗi là kiểu dữ liệu bất biến — mọi thao tác đều trả về chuỗi mới, không thay đổi chuỗi gốc.
Khởi tạo và biểu diễn
s1 = 'Hello'
s2 = "World"
s3 = '''Dòng 1
Dòng 2'''
s4 = """Cũng
nhiều dòng"""
escaped = "Tab:\tNewline:\nQuote: \""
Lưu ý: trộn dấu nháy đơn và kép không đúng cách sẽ gây lỗi cú pháp.
Hằng chuỗi chuẩn
import string
print(string.ascii_letters) # a-zA-Z
print(string.digits) # 0-9
print(string.punctuation) # !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
print(repr(string.whitespace)) # ' \t\n\r\x0b\x0c'
Phép toán và truy cập
text = "Datawhale"
# Ghép và nhân chuỗi
combined = text + " Academy"
repeated = text * 3
# Kiểm tra chuỗi con
has_data = "Data" in text # True
# Truy cập ký tự
first_char = text[0] # 'D'
last_char = text[-1] # 'e'
# Cắt chuỗi
prefix = text[:4] # 'Data'
suffix = text[4:] # 'whale'
copy = text[:] # 'Datawhale'
Duyệt chuỗi
# Duyệt theo chỉ số
for i in range(len(text)):
print(i, text[i])
# Duyệt kèm chỉ số (khuyên dùng)
for index, char in enumerate(text):
print(index, char)
# Ghép cặp từ hai chuỗi
def reverse_str(s):
return s[::-1]
for orig, rev in zip(text, reverse_str(text)):
print(orig, rev)
Chuyển đổi đầu vào
# Chuyển chuỗi nhập thành danh sách số nguyên
numbers = list(map(int, input().split()))
Hàm và phương thức phổ biến
str(), len(): chuyển kiểu và đo độ dài.ord(), chr(): chuyển đổi giữa ký tự và mã ASCII/Unicode.strip(): loại bỏ khoảng trắng đầu/cuối.replace(old, new): thay thế chuỗi con.startswith(), endswith(): kiểm tra tiền tố/hậu tố.
Thao tác tệp cơ bản
Sử dụng hàm open(file_path, mode) để mở tệp. Các chế độ phổ biến:
'r': đọc (mặc định)'w': ghi đè'a': ghi nối thêm'rb', 'wb': chế độ nhị phân
# Đọc toàn bộ nội dung
with open('data.txt', 'r') as f:
content = f.read()
# Đọc từng dòng
with open('log.txt', 'r') as f:
lines = f.readlines()
# Ghi dữ liệu
with open('output.txt', 'w') as f:
f.write("Hello World\n")
f.writelines(["Line 1\n", "Line 2\n"])
Lưu ý: luôn đóng tệp sau khi dùng — dùng with để tự động đóng, tránh rò rỉ tài nguyên.