C9-01 · Đếm dòng và từ

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

Đề

Cho nội dung tệp văn bản van_ban.txt (có thể có dòng trống). In trên một dòng ba số nguyên: số dòng của tệp, số dòng có nội dung (dòng khác rỗng sau khi strip()) và tổng số từ. Từ là một dãy ký tự liền nhau không chứa khoảng trắng, đúng như các phần tử mà split() (không đối số) tách ra.

Cách nộp trên hệ thống chấm. Hệ thống chỉ có dữ liệu vào chuẩn, nên toàn bộ nội dung tệp van_ban.txt được đưa vào qua dữ liệu vào. Chương trình đọc đến hết dữ liệu bằng for dong in sys.stdin: (Phụ lục D, mẫu 7) — duyệt đúng như for dong in f: với tệp đang mở (mục 9.2.3), mỗi dong vẫn còn ký tự xuống dòng ở cuối. Ở máy, chạy python bai.py < van_ban.txt để thử.

Dữ liệu vào

Nội dung tệp van_ban.txt, nguyên văn:

  • Có thể có dòng trống, dòng chỉ gồm dấu cách hoặc tab; giữa các từ có thể có nhiều dấu cách hoặc tab.
  • Tệp có thể rỗng (0 dòng).
  • Dòng cuối có thể không có ký tự xuống dòng; nó vẫn là một dòng.

Kết quả

Một dòng gồm ba số nguyên cách nhau một dấu cách: số dòng, số dòng có nội dung, tổng số từ.

Ràng buộc

  • Tối đa 1000 dòng, mỗi dòng tối đa 200 ký tự.
  • Chỉ gồm chữ cái, chữ số, dấu câu ASCII, dấu cách và tab (không dấu tiếng Việt).

Ví dụ

Dữ liệu vào:

Hoc Python

moi ngay mot it

Kết quả:

3 2 6

Giải thích ví dụ

Tệp có 3 dòng: Hoc Python, một dòng trống, moi ngay mot it. Dòng 2 rỗng sau strip() nên chỉ có 2 dòng có nội dung. Số từ: 2 + 0 + 4 = 6.

Hai bẫy cần thử trước khi nộp: tệp kết thúc bằng \n thì read().split("\n") cho thêm một chuỗi rỗng ở cuối (đếm thừa một dòng); dòng chỉ có dấu cách nhìn như trống nhưng dong != "\n".

Nguồn trong sách: Bài C9-01, 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...