IndexError:字符串索引超出范围不断得到这个,不明白如何解决它

IndexError: string index out of range keep getting this can't understand how to fix it

提问人:Michael 提问时间:9/4/2023 最后编辑:quamranaMichael 更新时间:9/4/2023 访问量:49

问:

    while length > 2:

        if s[i].isalpha():
            i += 1
            i1 = i
            length -= 1

        elif s[i].isdigit():
            if int(s[i]) == 0:
                return False

        if s[i].isalpha():
            continue

        else:
            while s[i].isdigit():
                if s[i1].isalpha(): #erorr stage
                    return False

                i1 += 1
            return False

    length -= 1
    valid += 1

我似乎不明白如何修复我的字符串检查长度。 此函数检查字符串的末尾是否包含数字,如果是,它还应该检查这些数字后面是否没有更多字母。

我希望收到数字后面是否有,但在 while 循环完成之前字符串超出界。Falseisalpha

python 字符串 for-loop while 循环

评论

0赞 quamrana 9/4/2023
你使用它,然后递增它。如果你的字符串以数字结尾,那么循环将“从字符串的末尾运行”。i1if s[i1].isalpha():while s[i].isdigit():
0赞 Michael 9/4/2023
哦,好的,谢谢,我现在明白了,我在 len(s) > i1 的 while 循环中添加了另一个条件

答:

0赞 Abhinav 9/4/2023 #1

检查我是否在 while 循环中< len(s) 和 s[i].isdigit(), 当我< len(s) 和 s[i].isdigit() 时:

评论

0赞 Community 9/5/2023
您的答案可以通过其他支持信息进行改进。请编辑以添加更多详细信息,例如引文或文档,以便其他人可以确认您的答案是正确的。您可以在帮助中心找到有关如何写出好答案的更多信息。