字符串索引超出范围:IndexError

时间:2021-06-24 22:36:44

标签: python

不明白为什么我的索引超出范围... 尝试用以下方法找出错误:http://pythontutor.com/visualize.html#mode=display

它“更新”了 il,但即使没有完成这个词,我也收到了错误。

我正在尝试打印每个空格不超过其第 5 个字符的名称,因此我的预期输出是:

Rama as
Nemo as

代码:

spaceNames = ['Rama as', 'Nemo as', 'Siegss as', 'Kama', 'Gray', 'BB', 'BB']

for name in spaceNames:
    i=0
    for l in name:
        
        if i <= 4 and l[i] == " ":
          print(name)
        print(i)
        i+=1

感谢任何帮助!

3 个答案:

答案 0 :(得分:1)

对您的程序稍加跟踪,甚至是眼球检查,都会发现 l 是单个字符。您使用的索引最多为 3。单个字符只有 l[0] 作为合法引用。

我们无法“修复”您的程序,因为我们几乎不知道您要做什么。

答案 1 :(得分:0)

想出如何解决你们所做的两个评论:

spaceNames = ['Rama as', 'Nemo as', 'Siegss as', 'Kama', 'Gray', 'BB', 'BB']

for name in spaceNames:
    i=0
    for l in name:
        if name.index(l) <=4 and name[i] == " ":
            print(name)
        i+=1

谢谢!

答案 2 :(得分:0)

当您可以更有效地获得大部分条件时,似乎有很多循环。

    jTable1.editingCanceled(new ChangeEvent(this));