C5-07 · Thuê sân cầu lông

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

Đề

Giá thuê sân cầu lông là 80 nghìn đồng/giờ; giờ cao điểm là 120 nghìn đồng/giờ (giá giả định).

Viết hàm tien_san(so_gio, cao_diem=False) trả về số tiền thuê (nghìn đồng); tham số cao_diem có giá trị mặc định False (mục 5.2.3). Chương trình chính đọc số giờ và một chữ cái, gọi hàm với đối số theo tên cao_diem=(ky_tu == "c") rồi in số tiền.

Dữ liệu vào

Một dòng chứa số giờ thuê (số nguyên dương) và một chữ cái thường, cách nhau một dấu cách:

  • c: thuê giờ cao điểm;
  • k: thuê giờ thường (không cao điểm).

Kết quả

Một số nguyên: số tiền thuê sân, đơn vị nghìn đồng.

Ràng buộc

  • ~1 \le \text{so\_gio} \le 1000~.
  • Chữ cái là c hoặc k (chữ thường).

Ví dụ 1

Dữ liệu vào:

2 c

Kết quả:

240

Ví dụ 2

Dữ liệu vào:

3 k

Kết quả:

240

Giải thích ví dụ

  • Ví dụ 1: ky_tu == "c" là True, lời gọi tien_san(2, cao_diem=True) trả về 2 × 120 = 240.
  • Ví dụ 2: ky_tu == "c" là False, lời gọi tien_san(3, cao_diem=False) (hoặc chỉ tien_san(3), dùng giá trị mặc định) trả về 3 × 80 = 240.

Hai ví dụ cố ý ra cùng một số: một lời giải tính nhầm giá vẫn có thể đúng một trong hai ví dụ, nên hệ thống còn nhiều test khác.

Ghi chú

  • Phải truyền cao_diem=(ky_tu == "c"), không truyền thẳng chữ cái: chuỗi "k" khác rỗng nên if cao_diem: vẫn đúng (mục 3.2.1).
  • Đối số theo vị trí: số giờ đứng trước. Đảo thứ tự đối số thì không có thông báo lỗi nào nhưng kết quả sai (mục 5.2.2).
  • Tham số có giá trị mặc định phải đứng sau: def tien_san(cao_diem=False, so_gio): bị SyntaxError (Compile Error).
  • Hệ thống chỉ so kết quả in ra; yêu cầu "hàm có tham số mặc định, có ít nhất ba assert" là phần giảng viên kiểm khi chấm tay.
  • So sánh chuỗi bằng ==, không dùng is (ky_tu is "c"): is so hai đối tượng có phải là một, không so nội dung. Với chuỗi một ký tự, CPython tình cờ dùng chung đối tượng nên kết quả vẫn đúng và máy chấm không phát hiện được; giảng viên kiểm khi chấm tay (Python 3.8+ còn in cảnh báo SyntaxWarning).

Nguồn trong sách: Bài C5-07, mục 5.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...