Cấu trúc lặp và xử lý chuỗi trong Python

Vòng lặp trong Python

Python cung cấp hai dạng vòng lặp chính: forwhile, 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ố startstep 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.

Thẻ: python loop string file-handling

Đăng vào ngày 19 tháng 7 lúc 08:49