Môn Tin họcQuản lý học tập Tin học

Sửa lỗi truyền đối số khi tính tổng hóa đơn nhà sách online

Lớp 10Lập trìnhpythonGiải quyết vấn đề với máy tínhVận dụng cao

Thang điểm 10 · 5 test case chấm tự động · 3 tiêu chí chấm

Nhà sách online SachViet ghi lại giá trị (đơn vị: nghìn đồng) của các đơn hàng trong ngày để tính tổng doanh thu. Nhân viên muốn có hai chế độ tính: tính tổng tất cả đơn hàng (khi loai = 0), hoặc chỉ tính tổng các đơn hàng lớn có giá trị từ 100 (nghìn đồng) trở lên (khi loai khác 0).

Một bạn học sinh đã viết chương trình dùng hàm tinh_tong(hoa_don, loai) nhưng khi chạy bị báo lỗi TypeError: 'int' object is not iterable. Em hãy đọc đoạn code dưới đây, tìm nguyên nhân lỗi và viết lại chương trình hoàn chỉnh cho đúng.

  • def tinh_tong(hoa_don, loai):
  •     S = 0
  •     for x in hoa_don:
  •         if loai == 0:
  •             S = S + x
  •     else:
  •         if x >= 100:
  •             S = S + x
  •     return S
  • data = input().split()
  • hoa_don = []
  • for s in data:
  •     hoa_don.append(int(s))
  • loai = int(input())
  • print(tinh_tong(loai, hoa_don))

Định dạng dữ liệu: Dòng 1 là các giá trị đơn hàng (số nguyên, đơn vị nghìn đồng) cách nhau bởi dấu cách; dòng 2 là số nguyên loai. In ra một số nguyên duy nhất là tổng tiền theo yêu cầu.

InputOutput
50 120 90 200 60
0
520
50 120 90 200 60
1
320
30 40 20
1
0
#tham số#đối số#thứ tự đối số#TypeError#hàm có điều kiện#category:tu_duy_phan_bien#difficulty:analyzing

Giáo viên giao bài này cho lớp, học sinh nộp bài trực tuyến và được chấm tự động.

Giáo viên đăng nhập để giao bài