Ôn tập Python lớp 9: Thuật toán, tìm kiếm và xử lý dữ liệu
Ôn tập Python lớp 9: Thuật toán, tìm kiếm và xử lý dữ liệu
Khởi động
Bài ôn tập này giúp em củng cố cách xây dựng thuật toán bằng vòng lặp, tìm kiếm dữ liệu, tìm giá trị lớn nhất, sắp xếp danh sách và kết hợp nhiều kiến thức để tạo chương trình hoàn chỉnh.
Bài 1: Tìm điểm lớn nhất trong danh sách
Đề bài: Cho danh sách điểm. Hãy tìm và in ra điểm lớn nhất.
Gợi ý: Lấy phần tử đầu tiên làm giá trị lớn nhất tạm thời. Duyệt các phần tử còn lại, nếu gặp điểm lớn hơn thì cập nhật.
scores = [7.5, 8.0, 9.25, 6.5, 8.75]
if len(scores) == 0:
print("Danh sách điểm rỗng.")
else:
largest = scores[0]
for score in scores[1:]:
if score > largest:
largest = score
print("Điểm lớn nhất là:", largest)
Hãy thử danh sách chỉ có một điểm, các điểm bằng nhau và danh sách rỗng.
Bài 2: Tìm tất cả vị trí của một tên
Đề bài: Cho danh sách tên có thể bị lặp. Nhập một tên và in ra tất cả vị trí xuất hiện của tên đó.
Gợi ý: Không dùng break, vì cần tiếp tục duyệt đến cuối danh sách. Dùng danh sách positions để lưu vị trí.
names = ["An", "Bình", "Chi", "An", "Dũng", "An"]
target = input("Nhập tên cần tìm: ").strip()
positions = []
for index, name in enumerate(names):
if name.casefold() == target.casefold():
positions.append(index)
if len(positions) == 0:
print("Không tìm thấy tên.")
else:
print("Tên xuất hiện tại các vị trí:", positions)
print("Số lần xuất hiện:", len(positions))
Bài 3: Sắp xếp điểm tăng dần
Đề bài: Sắp xếp danh sách điểm theo thứ tự tăng dần và in ra danh sách sau khi sắp xếp.
Gợi ý: Dùng hàm sorted(). Hàm này tạo danh sách mới và không làm thay đổi danh sách ban đầu.
scores = [8.5, 6.0, 9.25, 7.5, 8.0]
sorted_scores = sorted(scores)
print("Danh sách ban đầu:", scores)
print("Danh sách tăng dần:", sorted_scores)
Bài 4: Tìm học sinh có điểm cao nhất
Đề bài: Cho danh sách gồm tên và điểm. Hãy tìm tên học sinh có điểm cao nhất.
Gợi ý: Mỗi học sinh được lưu bằng một từ điển gồm khóa name và score. Duyệt danh sách và lưu học sinh tốt nhất hiện tại.
students = [
{"name": "An", "score": 8.5},
{"name": "Bình", "score": 9.25},
{"name": "Chi", "score": 8.75},
{"name": "Dũng", "score": 7.5}
]
if len(students) == 0:
print("Danh sách học sinh rỗng.")
else:
best_student = students[0]
for student in students[1:]:
if student["score"] > best_student["score"]:
best_student = student
print("Học sinh có điểm cao nhất:", best_student["name"])
print("Điểm:", best_student["score"])
Bài 5: Chương trình quản lý điểm
Đề bài: Viết chương trình quản lý danh sách điểm. Chương trình cần in danh sách điểm, tính điểm trung bình, tìm điểm cao nhất, tìm điểm thấp nhất và in danh sách điểm tăng dần.
Gợi ý: Dùng sum(), len(), max(), min() và sorted(). Trước khi xử lý cần kiểm tra danh sách có rỗng hay không.
scores = [7.5, 8.0, 9.25, 6.5, 8.75, 9.0]
if len(scores) == 0:
print("Danh sách điểm rỗng.")
else:
average = sum(scores) / len(scores)
highest = max(scores)
lowest = min(scores)
sorted_scores = sorted(scores)
print("Danh sách điểm:", scores)
print("Điểm trung bình:", round(average, 2))
print("Điểm cao nhất:", highest)
print("Điểm thấp nhất:", lowest)
print("Điểm tăng dần:", sorted_scores)
Thử thách thêm
Em hãy nâng cấp bài 5 bằng cách cho người dùng nhập danh sách điểm trên một dòng. Dùng split() để tách dữ liệu và float() để chuyển từng phần tử thành số. Hãy xử lý cả trường hợp người dùng nhập sai dữ liệu.
Từ khoá: on tap python lop 9 thuat toan tim kiem va xu ly du lieu, Ôn tập Python lớp 9, thuật toán Python, tìm kiếm danh sách, sắp xếp dữ liệu, bài tập Python THCS