Bài Tập Về Chuỗi (Strings)
Giới Thiệu
Chuỗi trong Python như những câu chuyện được viết ra. Chúng ta có thể đọc, chỉnh sửa, cắt ghép, và trang trí những câu chuyện này theo nhiều cách khác nhau.
Bài Tập 1: Tạo và Hiển Thị Chuỗi
Đề bài: Làm quen với các cách tạo chuỗi
# Giải pháp
# Cách 1: Dấu nháy đơn
ten_1 = 'Nguyễn Văn An'
# Cách 2: Dấu nháy kép
ten_2 = "Trần Thị Bình"
# Cách 3: Ba dấu nháy (cho chuỗi nhiều dòng)
mo_ta = """
Đây là một câu chuyện dài
về một chàng trai tên An
và cô gái tên Bình
"""
# Cách 4: Chuỗi với ký tự đặc biệt
cau_noi = "Anh ấy nói: \"Tôi yêu lập trình Python!\""
duong_dan = "C:\\Users\\An\\Documents\\python_code.py"
print("=== CÁC CÁCH TẠO CHUỖI ===")
print(f"Tên 1: {ten_1}")
print(f"Tên 2: {ten_2}")
print(f"Mô tả: {mo_ta}")
print(f"Câu nói: {cau_noi}")
print(f"Đường dẫn: {duong_dan}")
Giải thích:
- Dấu nháy đơn và kép như hai cách viết khác nhau
- Ba dấu nháy như viết thư dài nhiều dòng
\"
như cách viết dấu nháy trong câu nói\\
như cách viết dấu gạch chéo
Bài Tập 2: Nối Chuỗi (String Concatenation)
Đề bài: Ghép các chuỗi lại với nhau
# Giải pháp
ho = "Nguyễn"
ten_dem = "Văn"
ten = "An"
# Cách 1: Dùng dấu +
ho_ten_1 = ho + " " + ten_dem + " " + ten
print(f"Cách 1: {ho_ten_1}")
# Cách 2: Dùng join()
ho_ten_2 = " ".join([ho, ten_dem, ten])
print(f"Cách 2: {ho_ten_2}")
# Cách 3: Dùng f-string (tốt nhất)
ho_ten_3 = f"{ho} {ten_dem} {ten}"
print(f"Cách 3: {ho_ten_3}")
# Cách 4: Dùng format()
ho_ten_4 = "{} {} {}".format(ho, ten_dem, ten)
print(f"Cách 4: {ho_ten_4}")
# Cách 5: Dùng % (cách cũ)
ho_ten_5 = "%s %s %s" % (ho, ten_dem, ten)
print(f"Cách 5: {ho_ten_5}")
# Ví dụ thực tế: Tạo thông điệp chào
tuoi = 20
thong_diep = f"Xin chào! Tôi là {ho_ten_3}, {tuoi} tuổi. Rất vui được gặp bạn!"
print(f"\nThông điệp: {thong_diep}")
Bài Tập 3: Độ Dài và Truy Cập Ký Tự
Đề bài: Đếm ký tự và truy cập từng ký tự trong chuỗi
# Giải pháp
cau_noi = "Python là ngôn ngữ tuyệt vời!"
# Độ dài chuỗi
do_dai = len(cau_noi)
print(f"Câu: '{cau_noi}'")
print(f"Độ dài: {do_dai} ký tự")
print("\n=== TRUY CẬP KỲ TỰ ===")
# Truy cập ký tự đầu tiên (index 0)
ky_tu_dau = cau_noi[0]
print(f"Ký tự đầu tiên: '{ky_tu_dau}'")
# Truy cập ký tự cuối cùng
ky_tu_cuoi = cau_noi[-1]
print(f"Ký tự cuối cùng: '{ky_tu_cuoi}'")
# Truy cập ký tự ở vị trí 7
ky_tu_7 = cau_noi[7]
print(f"Ký tự ở vị trí 7: '{ky_tu_7}'")
print("\n=== DUYỆT QUA TỪNG KÝ TỰ ===")
# Cách 1: Dùng for trực tiếp
print("Cách 1:")
for ky_tu in cau_noi:
print(ky_tu, end=" ")
print()
# Cách 2: Dùng index
print("\nCách 2 (với vị trí):")
for i in range(len(cau_noi)):
print(f"[{i}]: '{cau_noi[i]}'", end=" ")
if (i + 1) % 10 == 0: # Xuống dòng sau mỗi 10 ký tự
print()
print("\n\n=== THỐNG KÊ KÝ TỰ ===")
# Đếm ký tự đặc biệt
chu_cai = sum(1 for c in cau_noi if c.isalpha())
chu_so = sum(1 for c in cau_noi if c.isdigit())
khoang_trang = sum(1 for c in cau_noi if c.isspace())
ky_tu_dac_biet = len(cau_noi) - chu_cai - chu_so - khoang_trang
print(f"Chữ cái: {chu_cai}")
print(f"Chữ số: {chu_so}")
print(f"Khoảng trắng: {khoang_trang}")
print(f"Ký tự đặc biệt: {ky_tu_dac_biet}")