4 bài tập Python lớp 9 về danh sách và chuỗi có lời giải
4 bài tập Python lớp 9 về danh sách và chuỗi có lời giải
Danh sách và chuỗi giúp em xử lý nhiều dữ liệu trong cùng một chương trình. Danh sách có thể lưu điểm số, tên học sinh hoặc các số nguyên; chuỗi dùng để lưu câu, từ và văn bản. Python cung cấp nhiều công cụ hữu ích như len(), append(), split(), strip(), lower() và count().
Trong các bài tập dưới đây, em nên tự làm trước khi xem đáp án. Hãy chú ý dữ liệu rỗng, chữ hoa - chữ thường, khoảng trắng thừa và các giá trị ở đầu hoặc cuối danh sách. Những trường hợp biên này giúp chương trình bền vững hơn.
Kiến thức cần nhớ
Chỉ số danh sách bắt đầu từ 0. ds.append(x) thêm phần tử vào cuối danh sách. for phan_tu in ds duyệt lần lượt từng phần tử. Với chuỗi, split() tách câu thành danh sách từ, còn join() ghép các từ lại thành câu.
Bài 1: Tìm điểm lớn nhất trong danh sách
Đề bài: Nhập một dòng gồm nhiều điểm số cách nhau bởi dấu cách. In điểm lớn nhất, nhỏ nhất và điểm trung bình.
Gợi ý
Dùng split() để tách dữ liệu, sau đó đổi từng phần tử thành float. Các hàm max(), min() và sum() giúp tính nhanh.
Lời giải hoàn chỉnh
dong = input("Nhập các điểm, cách nhau bởi dấu cách: ")
diem = [float(x) for x in dong.split()]
if len(diem) == 0:
print("Danh sách điểm đang rỗng")
else:
lon_nhat = max(diem)
nho_nhat = min(diem)
trung_binh = sum(diem) / len(diem)
print(f"Điểm lớn nhất: {lon_nhat}")
print(f"Điểm nhỏ nhất: {nho_nhat}")
print(f"Điểm trung bình: {trung_binh:.2f}")
Giải thích: Cú pháp [float(x) for x in dong.split()] tạo danh sách mới từ các từ đã tách. Kiểm tra len(diem) == 0 để tránh chia cho 0. Thử nhập 8 7.5 9, nhập một điểm duy nhất và thử bỏ trống.
Bài 2: Đếm số lần một từ xuất hiện
Đề bài: Nhập một câu và một từ cần tìm. Đếm số lần từ đó xuất hiện, không phân biệt chữ hoa và chữ thường.
Gợi ý
Chuyển cả câu và từ tìm kiếm về chữ thường bằng lower(). Dùng split() để có danh sách từ, sau đó duyệt và tăng biến đếm khi gặp từ giống nhau.
Lời giải hoàn chỉnh
cau = input("Nhập một câu: ").lower()
tu_can_tim = input("Nhập từ cần đếm: ").strip().lower()
cac_tu = cau.split()
dem = 0
for tu in cac_tu:
if tu == tu_can_tim:
dem += 1
print(f"Từ cần tìm xuất hiện {dem} lần")
Giải thích: strip() bỏ khoảng trắng ở đầu và cuối từ tìm kiếm. split() tự xử lý nhiều khoảng trắng liên tiếp. Cách này đếm theo từng từ, nên từ có dấu câu đi kèm sẽ được xem là một giá trị khác; em có thể mở rộng bằng cách xóa dấu câu trước khi tách.
Bài 3: Lọc các số chẵn trong danh sách
Đề bài: Nhập danh sách số nguyên và tạo danh sách mới chỉ chứa các số chẵn, giữ nguyên thứ tự xuất hiện.
Gợi ý
Một số là số chẵn khi chia cho 2 có phần dư bằng 0. Duyệt danh sách và dùng append() để thêm số phù hợp.
Lời giải hoàn chỉnh
dong = input("Nhập các số nguyên: ")
danh_sach = [int(x) for x in dong.split()]
so_chan = []
for so in danh_sach:
if so % 2 == 0:
so_chan.append(so)
if so_chan:
print("Các số chẵn:", so_chan)
else:
print("Không có số chẵn")
Giải thích: Danh sách so_chan bắt đầu rỗng. Mỗi số thỏa điều kiện được thêm vào cuối danh sách. Trong Python, danh sách rỗng được xem là sai khi đặt trong if, còn danh sách có phần tử được xem là đúng. Thử dữ liệu 1 3 5, dữ liệu có số âm và dữ liệu rỗng.
Bài 4: Chuẩn hóa một câu văn
Đề bài: Nhập một câu có thể chứa nhiều khoảng trắng ở đầu, cuối và giữa các từ. Hãy chuẩn hóa để câu chỉ còn một khoảng trắng giữa các từ, chữ cái đầu viết hoa.
Gợi ý
Dùng split() không tham số để tách và tự bỏ khoảng trắng thừa. Sau đó dùng join() ghép lại rồi dùng capitalize().
Lời giải hoàn chỉnh
cau = input("Nhập câu cần chuẩn hóa: ")
cac_tu = cau.split()
if len(cac_tu) == 0:
print("Bạn chưa nhập nội dung")
else:
cau_chuan = " ".join(cac_tu).capitalize()
print("Câu sau khi chuẩn hóa:", cau_chuan)
Giải thích: Không truyền tham số cho split() giúp Python tự nhận biết một hoặc nhiều khoảng trắng. join() ghép các phần tử bằng đúng một dấu cách. capitalize() viết hoa chữ đầu tiên và chuyển phần còn lại về chữ thường. Em có thể thử câu toàn chữ hoa hoặc chỉ nhập dấu cách.
Tổng kết và liên kết học tiếp
Bốn bài đã giúp em duyệt danh sách, tính toán, lọc phần tử và xử lý chuỗi. Nếu muốn ôn nền tảng, hãy xem bài về biến, input và output cùng bài về vòng lặp. Sau đó, em có thể học cách đóng gói các thao tác lặp lại trong bài tập về hàm Python.
Thử thách: sửa Bài 2 để bỏ dấu chấm, phẩy; sửa Bài 3 để tính tổng các số chẵn; sửa Bài 4 để viết hoa chữ cái đầu của mọi từ trong họ tên.
Mẹo xử lý dữ liệu danh sách và chuỗi
Trước khi dùng max(), min() hoặc tính trung bình, hãy kiểm tra danh sách có rỗng hay không. Khi xử lý văn bản, cần thống nhất chữ hoa và chữ thường bằng lower() hoặc casefold(). Nếu câu có dấu câu, hãy cân nhắc thay thế chúng trước khi dùng split(). Em cũng nên in danh sách sau từng bước để hiểu dữ liệu đã thay đổi như thế nào.
Bài tự luyện thêm: tìm tên dài nhất trong danh sách, đếm số từ có độ dài lớn hơn 5, xóa phần tử trùng và sắp xếp điểm theo thứ tự giảm dần. Đây là những bài rất tốt để luyện tư duy duyệt và biến đổi dữ liệu.
Từ khoá: 4 bai tap python lop 9 ve danh sach va chuoi co loi giai, bài tập Python lớp 9 danh sách chuỗi, list string Python có lời giải