我正在使用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,但是我不明白为什么的确切原因,但是我确实理解在循环中设置为
最佳答案
解
使用索引0
,1
,2
和3
,您已经访问了所有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/