C7-10 · Tách họ, tên đệm, tên
Xem dạng PDFNguồn: Bài C7-10, mục 7.10, giáo trình Lập trình cơ sở với Python — TS. Nguyễn Quốc Long.
Đề
Cho một dòng chứa họ tên (tiếng Việt không dấu) gồm ít nhất hai từ, gõ lộn xộn: có thể thừa dấu cách, chữ hoa chữ thường lẫn lộn. Hãy chuẩn hóa họ tên (mỗi từ viết hoa chữ đầu, các chữ còn lại viết thường — như Ví dụ 7.4), rồi in ba dòng:
- họ — từ đầu tiên;
- tên đệm — các từ nằm giữa từ đầu và từ cuối, cách nhau đúng một dấu cách; nếu họ tên chỉ có hai từ thì không có tên đệm, in
-; - tên — từ cuối cùng.
Dữ liệu vào
Một dòng chứa họ tên.
Kết quả
Ba dòng: họ, tên đệm (hoặc -), tên — đã chuẩn hóa.
Ràng buộc
- Dòng dài từ ~1~ đến ~200~ ký tự, chỉ gồm chữ cái
a–z,A–Zvà dấu cách. - Có ít nhất ~2~ từ; dấu cách có thể thừa ở đầu, ở cuối, giữa hai từ.
Gợi ý
split() (không đối số) rồi lát cắt danh sách: cac_tu[0], cac_tu[1:-1], cac_tu[-1] (mục 6.1, 7.3.2). Tên đệm ghép lại bằng " ".join(...).
Lưu ý về chấm
Hệ thống so từng ký tự của mỗi dòng kết quả (chỉ bỏ qua dấu cách thừa ở cuối dòng): các từ của tên đệm cách nhau đúng một dấu cách, không có dấu cách ở đầu dòng. Lấy các từ bằng split() rồi ghép bằng " ".join(...), đừng cắt thẳng từ chuỗi gốc.
Ví dụ 1
Dữ liệu vào:
ton nu thi phuong thao
Kết quả:
Ton
Nu Thi Phuong
Thao
Ví dụ 2
Dữ liệu vào:
LE an
Kết quả:
Le
-
An
Giải thích ví dụ
- Ví dụ 1: năm từ; họ
Ton, tênThao, ba từ ở giữaNu Thi Phuonglà tên đệm (dấu cách thừa giữathivàphuongbị bỏ). - Ví dụ 2: chỉ có hai từ nên dòng tên đệm in
-.LEđược chuẩn hóa thànhLe.
Nguồn trong sách: bài tập C7-10 (mục 7.10) · Mức: (***)