C9-05 · Sổ quỹ lớp

Xem dạng PDF

Gửi bài giải

Điểm: 1,00
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Nguồn bài:
Sách "Lập trình cơ sở với Python"
Dạng bài
Ngôn ngữ cho phép
Python

Đề

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ằng for dong in sys.stdin: (Phụ lục D, mẫu 7), xử lý từng dòng như với for 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: (**)


Đang tải...