Soi lỗi hàm tính tổng giao dịch trong ứng dụng MoneyKeeper
Lớp 10Lập trìnhpythonGiải quyết vấn đề với máy tínhVận dụng cao
Thang điểm 10 · 6 test case chấm tự động · 3 tiêu chí chấm
Ứng dụng MoneyKeeper cần một hàm tinh_tong(danh_sach, loai) với hai tham số: danh_sach là danh sách các giao dịch trong ngày, loai là số nguyên quy định cách tính:
- Nếu
loai == 0: tính tổng tất cả các giao dịch (cả dương lẫn âm) để biết số dư ròng trong ngày. - Nếu
loai != 0: chỉ tính tổng các giao dịch dương (tiền nạp/thu) để biết tổng tiền vào trong ngày.
Bạn lập trình viên đã viết đoạn code sau nhưng chạy thử thấy kết quả bị ngược so với yêu cầu:
def tinh_tong(danh_sach, loai):S = 0for x in danh_sach:if loai == 0:if x > 0:S = S + xelse:S = S + xreturn S
Hãy chỉ ra lỗi trong đoạn code trên (điều kiện bị đảo ngược so với yêu cầu), sửa lại cho đúng, rồi viết chương trình hoàn chỉnh: đọc danh sách giao dịch ở dòng đầu tiên (các số nguyên cách nhau bởi dấu cách), đọc số loai ở dòng thứ hai, gọi hàm tinh_tong đã sửa và in kết quả ra màn hình (chỉ in một số nguyên duy nhất).
| Input | Output | Giải thích |
|---|---|---|
| 10 -5 20 -3 8 0 | 30 | Cộng tất cả: 10-5+20-3+8=30 |
| 10 -5 20 -3 8 1 | 38 | Chỉ cộng số dương: 10+20+8=38 |
| -5 -10 -2 1 | 0 | Không có giao dịch dương nào |
#tham số của hàm#đối số#sửa lỗi#cấu trúc rẽ nhánh#danh sách#category:tu_duy_phan_bien#difficulty:analyzing
Giáo viên giao bài này cho lớp, học sinh nộp bài trực tuyến và được chấm tự động.
Giáo viên đăng nhập để giao bàiBài tập khác lớp 10
- Xét kết quả Đạt / Không đạt · Lập trình
- Cân lại mẫu đá thiên thạch trên các hành tinh khác · Lập trình
- Khám phá tên đăng nhập mạng xã hội · Lập trình
- Tính điểm trung bình 3 môn thi · Lập trình
- Tìm lỗi: Tổng lượt xem video theo ngày · Lập trình
- Tra cứu điểm số theo chỉ số danh sách · Lập trình