Python索引器错误:列表索引超出范围,名称打印包括sur名称

2024-09-29 23:19:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个简单的脚本。结果并不像我想的那么容易。我得到这个错误:

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

Tags: ofnameindexifrangeoutlistprint
3条回答

签入if是错误的,因为它在上下文中没有意义。你知道吗

请执行以下操作:

if len(name) >= 3:  #name must have at least 3 parts
    print(name[0], name[1], name[2])
else:
    print(name[0], name[1])

if name[2]:不检查name是否有索引[2]。它尝试访问name[2]索引并将该索引的值求值为true/false。你知道吗

在尝试访问某个数组之前,需要确保该数组具有索引,否则将导致索引超出范围错误。你知道吗

更简单:

x = [1, 2]
print(x[2])

您需要检查元素是否存在并处理该情况。对于您的代码,列表也可以有零个或一百个元素。但是,如果使用x = split(s)生成列表,也可以使用' '.join(x)返回字符串(至少在字符串附近,两个连续的空格将压缩为一个)。你知道吗

相关问题 更多 >

    热门问题