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

Tìm lỗi: Kiểm tra mã vé xe buýt có chứa tuyến '07'

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 · 6 test case chấm tự động · 4 tiêu chí chấm

Một bạn học sinh viết chương trình kiểm tra mã vé xe buýt S (một xâu chỉ gồm các chữ số) có chứa cặp kí tự liên tiếp "07" hay không. Đoạn code của bạn ấy như sau:

  • S = input()
  • kq = False
  • for i in range(len(S)):
  •     if S[i] == "0" and S[i + 1] == "7":
  •         kq = True
  •         break
  • if kq:
  •     print("Co tuyen 07")
  • else:
  •     print("Khong co tuyen 07")

Khi chạy với nhiều mã vé, chương trình báo lỗi IndexError: string index out of range. Em hãy tìm nguyên nhân gây lỗi (liên quan đến phạm vi chỉ số khi truy cập S[i+1]) và viết lại chương trình đọc xâu S từ bàn phím, chạy đúng với mọi độ dài của S (kể cả xâu rỗng hoặc chỉ có 1 kí tự), in ra đúng một trong hai thông báo.

Định dạng vào/ra: Đọc một dòng là xâu S. In ra Co tuyen 07 nếu S chứa xâu con "07", ngược lại in Khong co tuyen 07.

InputOutput
1234075Co tuyen 07
9876543Khong co tuyen 07
#xâu kí tự#vòng lặp for#lỗi off-by-one#IndexError#toán tử in#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