Lỗi IndexError
-
Các anh chị giúp em với, em mới học viết chương trình về xử lí string nó báo lỗi như kia em tra google các thứ mà vẫn chưa hiểu anh chị giải thích giúp em với!
Code:
def change(tiengviet):
tieqviet = ""
i = 0
while i <= len(tiengviet):
"Xử lí vần Ngh/Ng/ngh/ng"
if tiengviet[i] == "n":
if tiengviet[i+1:i+2] == "gh":
tieqviet = tieqviet + "q"
i = i + 3
continue
elif tiengviet[i+1] == "g":
tieqviet = tieqviet + "q"
i = i + 2
continue
elif tiengviet[i] == 'N':
if tiengviet[i+1:i+2] == "gh":
tieqviet = tieqviet + "q"
i = i + 3
continue
elif tiengviet[i+1] == "g":
tieqviet = tieqviet + "q"
i = i + 2
continue
"Xử lí vần gh/Gh"
"""else:
tieqviet = tieqviet + tiengviet[i]"""
i = i + 1
return tieqviet
print("Phần mềm chuyển đổi tiếng việt!")
st = input("Mời bạn nhập vào đoạn cần chuyển: ")
print()
print("-----------------------------------------")
print("Đoạn văn cũ:",st)
print("-----------------------------------------")
print("Đoạn văn mới:",change(st))
print("-----------------------------------------")
print()image url)
-
Em xin lỗi vì web này đăng lên code căn lề trái nên hơi khó đọc :'(
-
Lỗi này do index quá độ dài của chữ nhé bạn @Hoàng-Thành-0
Ví dụ thế này
input = "Tieq Viet :(" input_length = len(text) // 12 kí tự
Vì độ dài của
input
là 12, và kí tự đầu tiên có index là[0]
thì kí tự cuối cũng sẽ là[11]
chứ không phải là[12]
.Để sửa lỗi này, bạn xem thay đổi ở dòng 292 thành
while i <= len(tiengviet) - 1:
Ps: bạn có thể bỏ vào code block như bên dưới
```
// code vào đây
```
Thì sẽ có kết quả
// code vào đây