我正在使用Python进行入门级编程,当时我正在努力掌握教材中的概念。

# This code will cause an IndexError exception.
my_list = [10, 20, 30, 40]
index = 0
while index < 5:
    print(my_list[index])
    index += 1


这将按预期返回IndexError,但是我不明白为什么的确切原因,但是我确实理解在循环中设置为

最佳答案




  使用索引0123,您已经访问了所有4个元素
  列表中。没有索引4。从零开始的索引意味着最后
  index总是长度减去1。


考虑到这一点,问题在于您期望列表中只有五个值时才有五个。将您的代码更改为以下内容...

my_list = [10, 20, 30, 40]
index = 0
while index < 4:
    print(my_list[index])
    index += 1


但是,这将是“硬编码”循环,如果要修改my_list的长度,则必须更改循环条件。因此,建议您更改条件以测试my_list的长度。这样的事情会起作用...

my_list = [10, 20, 30, 40]
index = 0
while index < len(my_list):
    print(my_list[index])
    index += 1


其他解决方案

还有其他更有效的方法可以打印出列表的内容。

遍历列表内容

for value in my_list:
    print(value)


使用加星号的表达式(请注意,这会在同一行上打印出内容)

print(*my_list)

关于python - IndexError异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52574122/

10-11 09:19