Bài dài bắt đầu bằng các việc nhỏ
Đề yêu cầu thống kê danh sách điểm. Ta chưa cần viết ngay mọi dòng mã: trước hết xác định dữ liệu, kết quả và những việc cần thực hiện.
Từ ý tưởng đến lời giải chi tiết
Làm mịn dần là bắt đầu từ các bước tổng quát rồi cụ thể hóa từng bước đến mức có thể thực hiện. Thiết kế mô đun chia chương trình thành phần có nhiệm vụ và cách trao đổi dữ liệu rõ. Hàm là một cách hiện thực; mô đun Python có thể là tệp .py chứa hàm để import.
Mỗi phần cần nêu nhận gì, trả gì và điều kiện dữ liệu. Cách chia hợp lí giúp thử riêng, bảo trì và dùng lại; không chia thành thật nhiều hàm chỉ để tăng số lượng. Thư viện cung cấp chức năng có sẵn nhưng vẫn cần đọc cách dùng và điều kiện.
Làm mịn bài thống kê
Mục tiêu: với danh sách điểm không rỗng, tính trung bình và số điểm từ 5 trở lên. Các bước tổng quát: đọc dữ liệu → tính tổng/số đạt → tạo báo cáo. Làm rõ bước tính: tổng cộng mọi điểm; số đạt tăng 1 khi điểm >=5; trung bình bằng tổng chia độ dài. Trường hợp danh sách rỗng phải được xử lí theo yêu cầu, không chia cho 0.
Thử vận dụng
Một hàm đếm số đạt nên trả kết quả nào để dễ dùng ở nhiều báo cáo?
Trộn quá nhiều việc làm khó dùng lại phần đếm.
Đúng: trả đúng kết quả cần thiết của hàm.
Không liên quan nhiệm vụ thống kê.
Không liên quan kết quả đếm.
Lời giải
Số lượng đạt là kết quả đúng nhiệm vụ; phần trình bày có thể dùng số đó theo nhiều cách.
Một hàm dùng lại
```python
def dem_dat(diem):
count = 0
for x in diem:
if x >= 5:
count += 1
return count
print(dem_dat([4, 5, 8]))
```
Hàm trả 2; việc in nằm ở nơi gọi. Có thể đặt hàm trong tệp thong_ke.py rồi nhập hàm theo cú pháp import phù hợp để dùng ở chương trình khác.
Ví dụ xem cách làm
Nêu ba bước làm mịn nhiệm vụ tìm tên dài nhất trong danh sách tên không rỗng.
Lời giải
Lấy tên đầu làm kết quả tạm; duyệt các tên còn lại và so độ dài; cập nhật khi gặp tên dài hơn rồi trả kết quả. Cần nêu quy tắc khi cùng độ dài, chẳng hạn giữ tên gặp đầu.
Ví dụ xem cách làm
Vì sao nên thử riêng dem_dat với [4,5,8] và []?
Lời giải
Bộ đầu kiểm ranh giới 5 và cả đạt/chưa đạt; danh sách rỗng kiểm kết quả không có phần tử, phải là 0 với định nghĩa đếm. Hai bộ có mục đích khác nhau.
Những điều cần nhớ
Chia việc theo nhiệm vụ có ý nghĩa, nêu rõ dữ liệu trao đổi và làm rõ từng bước. Tận dụng hàm/thư viện đã có khi đáp ứng yêu cầu.
Đang học