numbers = [5, 9, 13, 17, 21]
for list in range(5,22,4):
print(numbers[list], end =" ")
似乎无法使其正常工作,请不断获得
IndexError:列表索引超出范围
答案 0 :(得分:1)
您的数字变量的索引为0-4(python从0开始并从0开始递增)-您的range命令为您提供数字:
[5, 9, 13, 17, 21]
您要告诉python您要以5为步长从4跳到22,这意味着当您尝试打印数字[list]时,变量list
实际上是for循环的迭代中的索引5,将不在numbers变量的索引范围内,因为它仅具有索引0、1、2、3和4
答案 1 :(得分:1)
您的代码似乎混淆了解决同一任务的两种方法。
一个正在打印现有数字列表:
numbers = [5, 9, 13, 17, 21]
for number in numbers:
print(number, end=" ")
# or, alternatively
for index in range(len(numbers)):
print(numbers[index], end=" ")
另一个正在使用range()
函数生成相同的数字序列:
for number in range(5,22,4):
print(number, end=" ")
# or, reusing one of the previous approaches
numbers = range(5,22,4)
for number in numbers:
print(number, end=" ")
请记住,range()
创建了一个范围对象,该对象适用于枚举和索引编制,但不支持其他列表操作,例如切片,串联和重复(与自身串联)。如果要获取numbers
作为列表,请明确编写:
numbers = list(range(5,22,4))
然后您可以执行以下操作:
for number in numbers * 2:
print(number, end=" ")
它将两次打印您的数字序列。