десятичный диапазон в течение - PullRequest
0 голосов
/ 11 августа 2011

Извините за мой вопрос для начинающих.Я хочу построить шаг десятичного диапазона для цикла, используя следующую конструкцию:

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 ]

3 голосов
/ 11 августа 2011

Ваш my_range уже список. Просто сделай:

for i in my_range:
    print(i)
1 голос
/ 11 августа 2011

Ошибка возникает из-за того, что функция 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
0 голосов
/ 11 августа 2011

Попробуйте

for i in my_range:
  print(i)

Вы создали список my_range, который вы можете повторить с помощью for.Вам не нужно снова вызывать range().

Функция range() принимает целые числа в качестве параметров, но выполнение range(my_range) передает ваш список, что приводит к этой ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...