对不起我的初学者问题。我想使用以下结构构建循环中的小数范围步骤:
max_value = 10
my_range = [r * 0.01 for r in range(0, max_value) ]
for i in range ( my_range ): //Error
print (i)
但是有以下错误:
TypeError: 'list' object cannot be interpreted as an integer
答案 0 :(得分:3)
您的my_range
已经是一个列表。只是做:
for i in my_range:
print(i)
答案 1 :(得分:1)
出现错误是因为range()
函数接受三个参数:起始值(包含在迭代中),结束值(不包括在内)和步骤。从数学的角度来看,它是:[a1, a2, ... an)
其中d = a2 - a1
是步骤。
因此,my_range = [r * 0.01 for r in range(0, max_value) ]
会创建一个列表。当然,range()
不能接受列表作为参数。
如果您需要[0.01,0.02,... 10]:
step = 0.01
max_val = 10
for i in range(0, max_val / step + 1):
print i * step
答案 2 :(得分:0)
尝试
for i in my_range:
print(i)
您已创建my_range
列表,您可以使用for
进行迭代。您无需再次致电range()
。
range()
函数接受整数作为参数,但在列表中运行range(my_range)
会导致此错误。