我正在尝试创建一个简单的脚本。结果并不像我想的那么容易。我得到这个错误:
IndexError: list index out of range
这是全部代码。它发生在if name[2]:
它发生在你输入2个单词时,但输入3个单词时完全有效。你知道吗
name = input('Enter name: ').split()
print(name)
print('Voornaam: ' + name[0])
print('Achernaam: ' + name[len(name) - 1])
if name[2]:
print('Tussenvoegsels: ' + name[1])
print()
print('Uw volledige naam is:', end=' ')
if name[2]:
print(name[0], name[1], name[2])
else:
print(name[0], name[1])
输出:
>>>
Enter name: name0 name1 name2
['name0', 'name1', 'name2']
Voornaam: name0
Achernaam: name2
Tussenvoegsels: name1
Uw volledige naam is: name0 name1 name2
>>> ================================ RESTART ================================
>>>
Enter name: name0 name1
['name0', 'name1']
Voornaam: name0
Achernaam: name1
Traceback (most recent call last):
File "C:/Users/lapje/Documents/Naam.py", line 5, in <module>
if name[2]:
IndexError: list index out of range
签入
if
是错误的,因为它在上下文中没有意义。你知道吗请执行以下操作:
if name[2]:
不检查name
是否有索引[2]
。它尝试访问name[2]
索引并将该索引的值求值为true/false。你知道吗在尝试访问某个数组之前,需要确保该数组具有索引,否则将导致索引超出范围错误。你知道吗
更简单:
您需要检查元素是否存在并处理该情况。对于您的代码,列表也可以有零个或一百个元素。但是,如果使用
x = split(s)
生成列表,也可以使用' '.join(x)
返回字符串(至少在字符串附近,两个连续的空格将压缩为一个)。你知道吗相关问题 更多 >
编程相关推荐