不明白为什么我的索引超出范围... 尝试用以下方法找出错误:http://pythontutor.com/visualize.html#mode=display
它“更新”了 i 和 l,但即使没有完成这个词,我也收到了错误。
我正在尝试打印每个空格不超过其第 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
感谢任何帮助!
答案 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));