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()

    0_1512102776612_727f1853-dedd-43de-8dfc-de9554122274-image.png 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 
    

Hãy đăng nhập để trả lời
 

Có vẻ như bạn đã mất kết nối tới Cộng đồng Python Việt Nam, vui lòng đợi một lúc để chúng tôi thử kết nối lại.