Bài tập luyện tập xử lý chuỗi trong Python
Python Tutorial | by
Sau khi đã tìm hiểu về các khái niệm và công cụ để làm việc với chuỗi (strings) trong Python – từ việc nối chuỗi, định dạng chúng bằng f-strings và .format()
, đến việc xử lý các ký tự đặc biệt với escape characters và string methods – giờ là lúc bạn tự mình bắt tay vào viết code.Chuỗi là một trong những kiểu dữ liệu cơ bản và được sử dụng nhiều nhất trong Python, vì vậy việc nắm vững các thao tác với chuỗi là cực kỳ quan trọng đối với bất kỳ lập trình viên nào. Các bài tập dưới đây được thiết kế để củng cố kiến thức của bạn và giúp bạn tự tin hơn khi xử lý văn bản trong các dự án thực tế.
Hãy nhớ rằng, mục tiêu không chỉ là tìm ra câu trả lời đúng mà còn là hiểu được tại sao nó đúng và cách áp dụng các phương pháp khác nhau. Đừng ngại thử nghiệm, mắc lỗi và tìm cách sửa chữa. Đó là cách tốt nhất để học hỏi! Chúc bạn có những giây phút luyện tập hiệu quả và vui vẻ!
Phần 1: Nối và Lặp Chuỗi cơ bản trong Python
Phần này sẽ giúp bạn làm quen lại với hai toán tử cơ bản nhất để thao tác với chuỗi: toán tử cộng (+
) để nối chuỗi và toán tử nhân (*
) để lặp lại chuỗi.
Bài 1: Ghép Tên Đầy Đủ
-
Yêu cầu: Cho hai biến
ho
vàten
. Sử dụng toán tử+
để tạo một chuỗi mới có tênten_day_du
chứa họ và tên cách nhau bởi một khoảng trắng. -
Gợi ý: Bạn sẽ cần nối ba phần:
ho
, một khoảng trắng, vàten
.
Code mẫu:
# Các biến đã cho ho = "Nguyễn" ten = "Văn A" # Code của bạn ở đây # Sử dụng toán tử '+' để nối các chuỗi ten_day_du = ho + " " + ten # In kết quả để kiểm tra print(f"Họ và tên đầy đủ: '{ten_day_du}'") # Kết quả mong muốn: "Nguyễn Văn A"
Bài 2: Tạo Dòng Kẻ Phân Cách
-
Yêu cầu: Sử dụng toán tử
*
để tạo một chuỗidong_ke
gồm 20 ký tự gạch ngang (-
). -
Gợi ý: Toán tử
*
cho phép bạn lặp lại một chuỗi một số lần nhất định.
Code mẫu:
# Code của bạn ở đây # Sử dụng toán tử '*' để lặp lại ký tự '-' dong_ke = "-" * 20 # In kết quả để kiểm tra print(f"Dòng kẻ phân cách: '{dong_ke}'") # Kết quả mong muốn: "--------------------"
Phần 2: Định dạng Chuỗi với f-strings và .format()
trong Python
Phần này tập trung vào việc sử dụng f-strings (chuỗi định dạng được nội suy) và phương thức .format()
để chèn biến và định dạng dữ liệu một cách hiệu quả.
Bài 3: Thông Tin Sản Phẩm (f-strings)
-
Yêu cầu: Cho các biến
san_pham
,gia
,so_luong
. Sử dụng f-string để tạo chuỗithong_tin_hoa_don
hiển thị tổng giá trị đơn hàng.
-
Gợi ý: Với f-strings, bạn có thể nhúng các biến và thậm chí cả phép tính trực tiếp vào bên trong dấu ngoặc nhọn
{}
. -
Code mẫu:
# Các biến đã cho san_pham = "Bút bi" gia = 5000 so_luong = 3 # Code của bạn ở đây # Tính tổng giá trị ngay trong f-string hoặc gán vào biến trước tong_gia = gia * so_luong thong_tin_hoa_don = f"Bạn đã mua {so_luong} sản phẩm {san_pham} với tổng giá {tong_gia} VND." # In kết quả để kiểm tra print(f"Thông tin hóa đơn: '{thong_tin_hoa_don}'") # Kết quả mong muốn: "Bạn đã mua 3 sản phẩm Bút bi với tổng giá 15000 VND."
Bài 4: Báo Cáo Điểm Số (.format())
-
Yêu cầu: Cho các biến
ten_hoc_sinh
,diem_toan
,diem_van
. Sử dụng phương thức.format()
để tạo chuỗibao_cao_diem
hiển thị điểm trung bình với 2 chữ số thập phân. -
Gợi ý: Bạn sẽ cần tính điểm trung bình trước. Để định dạng số thập phân với
.format()
, hãy nhớ cú pháp định dạng bên trong dấu ngoặc nhọn{:.2f}
.
Code mẫu:
# Các biến đã cho ten_hoc_sinh = "Trần Thị B" diem_toan = 8.5 diem_van = 7.8 # Code của bạn ở đây # Tính điểm trung bình diem_trung_binh = (diem_toan + diem_van) / 2 # Sử dụng .format() và định dạng số thập phân bao_cao_diem = "Học sinh {} có điểm trung bình là {:.2f}.".format(ten_hoc_sinh, diem_trung_binh) # In kết quả để kiểm tra print(f"Báo cáo điểm: '{bao_cao_diem}'") # Kết quả mong muốn: "Học sinh Trần Thị B có điểm trung bình là 8.15."
Phần 3: Xử lý Ký tự Đặc biệt và Chuỗi Thô trong Python
Phần này sẽ giúp bạn vận dụng kiến thức về các ký tự thoát (\n
, \"
, v.v.) và cách sử dụng chuỗi thô (r""
) để đơn giản hóa việc viết chuỗi chứa nhiều ký tự đặc biệt.
Bài 5: Chèn Dấu Nháy và Xuống Dòng
-
Yêu cầu: Tạo một chuỗi
loi_thoai
có nội dung:Lan nói: "Hôm nay trời đẹp quá!\nHãy đi chơi nhé."
Đảm bảo chuỗi hiển thị đúng cả dấu nháy kép và ký tự xuống dòng. -
Gợi ý: Bạn sẽ cần sử dụng ký tự thoát
\"
để chèn dấu nháy kép vào bên trong chuỗi (nếu chuỗi được bao bởi nháy kép), và\n
để tạo dòng mới.
Code mẫu:
# Code của bạn ở đây # Sử dụng \" để thoát dấu nháy kép và \n để xuống dòng loi_thoai = "Lan nói: \"Hôm nay trời đẹp quá!\nHãy đi chơi nhé.\"" # In kết quả để kiểm tra print(loi_thoai) # Kết quả mong muốn: # Lan nói: "Hôm nay trời đẹp quá! # Hãy đi chơi nhé."
Bài 6: Sử dụng Chuỗi Thô cho Đường Dẫn
-
Yêu cầu: Tạo một chuỗi
duong_dan_windows
chứa đường dẫn file:C:\Program Files\Python\script.py
Sử dụng chuỗi thô (raw string) để không phải thoát từng dấu gạch chéo ngược. -
Gợi ý: Chỉ cần đặt chữ
r
(hoặcR
) ngay trước dấu nháy mở đầu của chuỗi.
Code mẫu:
# Code của bạn ở đây # Sử dụng 'r' trước chuỗi để tạo raw string, không cần thoát dấu '' duong_dan_windows = r"C:\Program Files\Python\script.py" # In kết quả để kiểm tra print(f"Đường dẫn file: '{duong_dan_windows}'") # Kết quả mong muốn: "C:\Program Files\Python\script.py"
Phần 4: Thao tác Chuỗi với String Methods trong Python
Phần này sẽ giúp bạn áp dụng các phương thức chuỗi đã học để làm sạch, biến đổi, tìm kiếm và kiểm tra chuỗi.
Bài 7: Chuẩn Hóa Tên
Yêu cầu: Cho biến ten_nhap_lieu
chứa tên được nhập với nhiều khoảng trắng thừa và chữ cái lộn xộn. Sử dụng các phương thức chuỗi để tạo chuỗi ten_chuan_hoa
sao cho:
-
Xóa khoảng trắng ở đầu và cuối.
-
Viết hoa chữ cái đầu mỗi từ.
Gợi ý: Bạn sẽ cần kết hợp hai phương thức chuỗi: một để xóa khoảng trắng và một để chuyển đổi kiểu chữ. Hãy nhớ thứ tự gọi phương thức có thể quan trọng!
Code mẫu:
# Biến đã cho ten_nhap_lieu = " nguyen VAN c " # Code của bạn ở đây # Bước 1: Xóa khoảng trắng ở đầu và cuối bằng .strip() ten_da_cat_khoang_trang = ten_nhap_lieu.strip() # Bước 2: Viết hoa chữ cái đầu mỗi từ bằng .title() ten_chuan_hoa = ten_da_cat_khoang_trang.title() # Hoặc gộp lại thành một dòng: # ten_chuan_hoa = ten_nhap_lieu.strip().title() # In kết quả để kiểm tra print(f"Tên chuẩn hóa: '{ten_chuan_hoa}'") # Kết quả mong muốn: "Nguyen Van C"
Bài 8: Thay Thế và Đếm
-
Yêu cầu: Cho biến
cau_van
. Thay thế tất cả các từ "xanh" thành "đỏ". Đếm xem từ "đỏ" xuất hiện bao nhiêu lần trong chuỗi sau khi thay thế. -
Gợi ý: Bạn sẽ cần dùng phương thức
.replace()
và.count()
. Hãy nhớ rằng.replace()
trả về một chuỗi mới, bạn cần đếm trên chuỗi mới đó.
Code mẫu:
# Biến đã cho cau_van = "Bầu trời xanh, cỏ cây cũng xanh. Một màu xanh tươi." # Code của bạn ở đây # Bước 1: Thay thế tất cả "xanh" bằng "đỏ" chuoi_sau_thay_the = cau_van.replace("xanh", "đỏ") # Bước 2: Đếm số lần từ "đỏ" xuất hiện trong chuỗi mới so_lan_do_xuat_hien = chuoi_sau_thay_the.count("đỏ") # In kết quả để kiểm tra print(f"Chuỗi sau thay thế: '{chuoi_sau_thay_the}'") print(f"Số lần từ \"đỏ\" xuất hiện: {so_lan_do_xuat_hien}") # Kết quả mong muốn: # Chuỗi sau thay thế: "Bầu trời đỏ, cỏ cây cũng đỏ. Một màu đỏ tươi." # Số lần từ "đỏ" xuất hiện: 2
Bài 9: Tách và Nối Chuỗi
-
Yêu cầu: Cho biến
danh_sach_san_pham_str
là một chuỗi các sản phẩm cách nhau bởi dấu phẩy. Tách chuỗi này thành một danh sách (list) các sản phẩm. Sau đó, nối các sản phẩm trong danh sách lại thành một chuỗi mới, nhưng lần này các sản phẩm cách nhau bởi dấu|
. -
Gợi ý: Dùng
.split()
để chuyển từ chuỗi sang list, và.join()
để chuyển từ list về chuỗi. Lưu ý cú pháp của.join()
: nó được gọi trên chuỗi ký tự phân cách.
Code mẫu:
# Biến đã cho danh_sach_san_pham_str = "Áo,Quần,Giày,Mũ" # Code của bạn ở đây # Bước 1: Tách chuỗi thành danh sách bằng .split(',') list_san_pham = danh_sach_san_pham_str.split(",") # Bước 2: Nối danh sách lại thành chuỗi mới bằng "|".join() chuoi_moi_noi = "|".join(list_san_pham) # In kết quả để kiểm tra print(f"Danh sách sản phẩm: {list_san_pham}") print(f"Chuỗi mới: '{chuoi_moi_noi}'") # Kết quả mong muốn: # Danh sách sản phẩm: ['Áo', 'Quần', 'Giày', 'Mũ'] # Chuỗi mới: "Áo|Quần|Giày|Mũ"
Bài 10: Kiểm Tra Định Dạng
-
Yêu cầu: Cho biến
ma_san_pham
vàgia_ban
. Kiểm tra xemma_san_pham
có phải là chữ và số hay không. Kiểm tra xemgia_ban
có phải là chữ số hay không. Kiểm tra xemma_san_pham
có bắt đầu bằng "SP" hay không. -
Gợi ý: Sử dụng các phương thức kiểm tra chuỗi như
.isalnum()
,.isdigit()
, và.startswith()
. Các phương thức này trả về giá trị Boolean (True
/False
).
Code mẫu:
# Các biến đã cho ma_san_pham = "SP123ABC" gia_ban = "150000" # Code của bạn ở đây # Kiểm tra mã sản phẩm là chữ và số is_ma_san_pham_alphanum = ma_san_pham.isalnum() # Kiểm tra giá bán là chữ số is_gia_ban_digit = gia_ban.isdigit() # Kiểm tra mã sản phẩm bắt đầu bằng "SP" starts_with_sp = ma_san_pham.startswith("SP") # In kết quả để kiểm tra print(f"Mã sản phẩm '{ma_san_pham}' là chữ và số: {is_ma_san_pham_alphanum}") print(f"Giá bán '{gia_ban}' là chữ số: {is_gia_ban_digit}") print(f"Mã sản phẩm '{ma_san_pham}' bắt đầu bằng \"SP\": {starts_with_sp}") # Kết quả mong muốn: # Mã sản phẩm 'SP123ABC' là chữ và số: True # Giá bán '150000' là chữ số: True # Mã sản phẩm 'SP123ABC' bắt đầu bằng "SP": True
Kết bài
Chúc mừng bạn đã hoàn thành loạt bài tập về xử lý chuỗi trong Python! Qua các bài tập này, bạn đã thực hành và củng cố kiến thức về nhiều khía cạnh quan trọng của chuỗi, từ những thao tác cơ bản như nối và lặp, đến việc định dạng chuỗi nâng cao bằng f-strings và .format()
, xử lý ký tự đặc biệt với escape characters và chuỗi thô, cho đến việc sử dụng các string methods mạnh mẽ để làm sạch, biến đổi và kiểm tra dữ liệu.
Hãy tự tin rằng bạn đã nắm vững các công cụ cần thiết để làm việc hiệu quả với văn bản trong Python.
-
Tự kiểm tra: Đừng ngần ngại chạy lại code của mình, thay đổi các giá trị đầu vào và xem kết quả. So sánh kết quả của bạn với kết quả mong muốn để đảm bảo bạn đã hiểu đúng.
-
Thử thách thêm: Nếu bạn cảm thấy tự tin, hãy tự nghĩ ra các bài tập chuỗi phức tạp hơn. Ví dụ, kết hợp nhiều string methods trong một dòng, xử lý các chuỗi đầu vào không hợp lệ, hoặc viết một chương trình nhỏ yêu cầu nhiều thao tác chuỗi.
Việc thành thạo các kỹ năng này sẽ là nền tảng vững chắc cho bạn khi giải quyết các vấn đề phức tạp hơn trong lập trình. Chuỗi có mặt ở khắp mọi nơi, và khả năng thao tác chúng một cách linh hoạt là một tài sản quý giá!