Để quản lý chi tiêu cá nhân, thầy giáo yêu cầu học sinh viết một chương trình bằng Python cho phép thực hiện các công việc sau:
Nhập số tiền đã chi hoặc đã thu theo từng ngày. Mỗi lần thu, chị được nhập trên một dòng với cấu trúc <ngày>,<số tiền>. Trong đó, số tiền âm là chi, số tiền dương là thu.
- Nhập một ngày nào đó, hiển thị số tiền cuối ngày đó.
Thầy giáo yêu cầu học sinh trao đổi theo nhóm để thiết kế chương trình này. Sau đây là các ý kiến trao đổi của một nhóm học sinh:
Lời giải chi tiết
Để giải quyết yêu cầu đặt ra, chúng ta cần phân tích các mệnh đề mà học sinh đã trao đổi trong nhóm và đề xuất cách giải quyết cụ thể cho bài toán:
def nhap_chi_tieu():
# Hàm nhập tiền chi/thu
def tinh_tien_cuoi_ngay(ds, ngay):
# Hàm tính số tiền cuối ngày
def tinh_tien_cuoi_ngay(ds, ngay_can_tinh):
tong_tien = 0
for ngay, tien in ds:
if ngay == ngay_can_tinh:
tong_tien += tien
return tong_tien
def nhap_chi_tieu():
danh_sach = []
while True:
du_lieu = input("Nhập ngày và số tiền (hoặc 'done' để kết thúc): ")
if du_lieu.strip().lower() == 'done':
break
try:
ngay, so_tien = du_lieu.split(',')
danh_sach.append((ngay.strip(), float(so_tien.strip())))
except ValueError:
print("Đầu vào không hợp lệ. Vui lòng nhập lại.")
continue
return danh_sach
def tinh_tien_cuoi_ngay(danh_sach, ngay):
tong_tien = 0
for ngay_giao_dich, so_tien in danh_sach:
if ngay_giao_dich == ngay:
tong_tien += so_tien
return tong_tien
# Sử dụng hàm
chi_tieu = nhap_chi_tieu()
ngay_can_tinh = input("Nhập ngày cần tính số tiền cuối ngày: ")
ket_qua = tinh_tien_cuoi_ngay(chi_tieu, ngay_can_tinh)
print(f"Số tiền cuối ngày {ngay_can_tinh} là: {ket_qua}")
Chú ý khi giải