C9-05 · Sổ quỹ lớp
Xem dạng PDFĐề
Tệp quy_lop.csv ghi sổ quỹ lớp, mỗi dòng ngay,noi_dung,so_tien (khoản thu là số dương, khoản chi là số âm). Bỏ qua (và đếm là dòng hỏng) mọi dòng không có đúng 3 trường hoặc có số tiền không phải số nguyên. In trên một dòng bốn số nguyên: tổng thu, tổng chi (in số dương), số dư (tổng thu − tổng chi) và số dòng hỏng.
Số tiền hợp lệ là chuỗi đổi được bằng int(), ví dụ 600000, -45000, 0. Các chuỗi như ba muoi, 45000.0, 1e5, chuỗi rỗng đều không hợp lệ. Số tiền bằng 0 là dòng hợp lệ nhưng không thu cũng không chi.
Cách nộp trên hệ thống chấm. Toàn bộ nội dung tệp
quy_lop.csvđược đưa vào qua dữ liệu vào. Đọc đến hết dữ liệu bằngfor dong in sys.stdin:(Phụ lục D, mẫu 7), xử lý từng dòng như vớifor dong in f:(mục 9.3). Ở máy:python bai.py < quy_lop.csv.
Dữ liệu vào
Nội dung tệp quy_lop.csv, mỗi dòng một bản ghi; các trường cách nhau dấu phẩy, tách bằng dong.strip().split(","). Tệp không có dòng trống.
Kết quả
Một dòng: tong_thu tong_chi so_du so_dong_hong.
Ràng buộc
- 1 ≤ số dòng ≤ 1000; mỗi dòng tối đa 100 ký tự ASCII in được.
- Số tiền hợp lệ có trị tuyệt đối không quá 10⁹, viết không có số 0 thừa ở đầu và không có dấu
+. - Trường số tiền không chứa dấu gạch dưới
_.
Ví dụ
Dữ liệu vào:
01/09,Thu quy,600000
05/09,Mua phan,-45000
10/09,In tai lieu,ba muoi
Kết quả:
600000 45000 555000 1
Giải thích ví dụ
Dòng 1 thu 600 000, dòng 2 chi 45 000 (in số dương). Dòng 3 có đủ 3 trường nhưng int("ba muoi") ném ValueError nên là dòng hỏng. Số dư 600 000 − 45 000 = 555 000.
Chú ý: khoản chi là số âm nên không kiểm bằng isdigit(); nội dung có dấu phẩy (Mua but, thuoc) làm dòng thành 4 trường, tức là dòng hỏng.
Nguồn trong sách: Bài C9-05, mục 9.10, giáo trình Lập trình cơ sở với Python — TS. Nguyễn Quốc Long · Mức: (**)