十进制范围

时间:2011-08-11 10:19:33

标签: python range

对不起我的初学者问题。我想使用以下结构构建循环中的小数范围步骤:

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

3 个答案:

答案 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)会导致此错误。