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 = Falsefor i in range(len(S)):if S[i] == "0" and S[i + 1] == "7":kq = Truebreakif 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.
| Input | Output |
|---|---|
| 1234075 | Co tuyen 07 |
| 9876543 | Khong 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àiBài tập khác lớp 10
- Xét kết quả Đạt / Không đạt · Lập trình
- Cân lại mẫu đá thiên thạch trên các hành tinh khác · Lập trình
- Khám phá tên đăng nhập mạng xã hội · Lập trình
- Tính điểm trung bình 3 môn thi · Lập trình
- Tìm lỗi: Tổng lượt xem video theo ngày · Lập trình
- Tra cứu điểm số theo chỉ số danh sách · Lập trình