我正在学习使用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,但是我不知道为什么的确切原因,但是我知道在循环中将索引设置为<5会导致错误。我只需要帮助了解错误背后的逻辑,而不是解决错误的方法即可。
答案 0 :(得分:0)
解决方案
使用索引
TeamspeakBot.supportQueue.remove((Integer) clientid);
,0
,1
和2
,您已经访问了所有4个元素 列表中。没有索引3
。从零开始的索引意味着最后 索引始终是长度减去1。
牢记这一点,问题在于,当只有四个值时,您期望列表中有五个值。将您的代码更改为以下内容...
4
但是,这将是“硬编码”循环,如果要修改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)