
A. Mục đích nghiên cứu
Tạo, truy cập và thao tác chuỗi cơ bản.
Sử dụng các phương thức xử lý chuỗi để làm sạch, định dạng, tìm kiếm và thay thế văn bản.
Định dạng chuỗi một cách chuyên nghiệp bằng f-string và .format().
B. Nội dung nghiên cứu
Bài 9. Cơ bản về chuỗi (String)
Bài 10. Các phương thức xử lý chuỗi thường dùng
Bài 11. Định dạng chuỗi (String Formatting)
C. Bài tập tổng hợp
CHƯƠNG 4: CÁC THAO TÁC VỚI KIỂU DỮ LIỆU STRING
21

CHƯƠNG 4: Các Thao Tác Với Kiểu Dữ Liệu String
26
name = "Lan"
message = 'Chào bạn!'
multi_line = """Dòng 1
Dòng 2"""
Bài 9. Cơ bản về chuỗi (String)
Chuỗi là dãy các ký tự (chữ, số, dấu câu, khoảng
trắng…) được đặt trong dấu nháy đơn ('...') hoặc nháy
kép ("...").
Chuỗi là immutable: không thể thay đổi ký tự trực tiếp.
\n → xuống dòng
\t → tab
\" hoặc \' → chèn dấu nháy trong chuỗi
\\ → in dấu gạch chéo ngược
a. Chuỗi là gì?
b. Tạo chuỗi
c. Ký tự đặc biệt
d. Truy cập
s = "Python"
print(s[0]) # 'P'
print(s[-1]) # 'n'

27
Bài 10. Các phương thức xử lý chuỗi thường dùng
s.upper() → in hoa tất cả
s.lower() → in thường tất cả
s.capitalize() → viết hoa chữ cái đầu
s.title() → viết hoa đầu mỗi từ
s.split(sep) → tách thành list (mặc định tách theo
khoảng trắng)
a. Chuyển đổi chữ hoa/thường: d. Tách và nối chuỗi:
"a,b,c".split(",") # ['a', 'b', 'c']
s.strip() → bỏ khoảng trắng đầu/cuối
s.lstrip(), s.rstrip() → bỏ bên trái/phải
b. Chuyển đổi chữ hoa/thường: sep.join(list) → nối các phần tử list thành chuỗi
"-".join(["a", "b", "c"]) # "a-b-c"
c. Tìm kiếm và thay thế:
s.find(sub) → trả về vị trí đầu tiên của sub, hoặc -1 nếu
không tìm thấy
s.replace(old, new) → thay thế tất cả old bằng new
s.startswith(prefix), s.endswith(suffix) → kiểm tra
đầu/cuối chuỗi
s.isalpha() → chỉ chứa chữ cái
s.isdigit() → chỉ chứa chữ số
s.isalnum() → chỉ chứa chữ và số
s.isspace() → chỉ chứa khoảng trắng
e. Kiểm tra nội dung:
CHƯƠNG 4: Các Thao Tác Với Kiểu Dữ Liệu String

28
Bài 11. Định dạng chuỗi (String Formatting)
a. Phương thức .format()
CHƯƠNG 4: Các Thao Tác Với Kiểu Dữ Liệu String
b. f-string
print("Xin chào, {}! Bạn {} tuổi.".format("Lan", 14))
print("Tên: {name}, Tuổi: {age}".format(name="Nam", age=13))
name = "Lan"
age = 14
print(f"Xin chào, {name}! Bạn {age} tuổi.")
c. Định dạng số trong f-string:
pi = 3.14159
print(f"Pi ≈ {pi:.2f}") # "Pi ≈ 3.14"
price = 123456
print(f"Giá: {price:,} VNĐ") # "Giá: 123,456 VNĐ"

29
CHƯƠNG 4: Các Thao Tác Với Kiểu Dữ Liệu String
Bài tập tổng hợp
Bài tập 1: Chuẩn hóa họ tên
Viết chương trình: Nhận một chuỗi họ tên
Trả về chuỗi có các từ viết hoa chữ cái đầu, còn lại
thường
Giữa các từ chỉ có một khoảng trắng
Bài tập 3: Kiểm tra mật khẩu mạnh
Viết chương trình: Trả về True nếu mật khẩu đủ
mạnh, False nếu không
Điều kiện mạnh:
Có ít nhất 8 ký tự
Có ít nhất 1 chữ in hoa (A–Z)
Có ít nhất 1 chữ thường (a–z)
Có ít nhất 1 chữ số (0–9)
Bài tập 2: Định dạng tiền
Viết chương trình nhận vào một số nguyên
Trả về chuỗi có định dạng tiền Việt Nam: thêm
dấu phẩy ngăn cách hàng nghìn. Ví dụ:
1234567 → "1,234,567"
999 → "999"
1234 → “1,234”
Bài tập 4: Đếm tần suất ký tự trong chuỗi
Viết hàm nhận vào một chuỗi.
Đếm số lần xuất hiện của mỗi ký tự.
In ra từng ký tự và số lần xuất hiện.

