Не могу заставить циклы for работать

Итак, я пытаюсь заставить программу сделать три шага...

1: выберите число между (m,n), которые являются передаваемыми параметрами (установите переменную «повторить»)

2: выберите случайное число между 0 и переменной «повторить» с первого шага. (Установить переменную "o")

3: вычтите "o" из "repeat" и установите этот результат в переменную "p"

таким образом я получаю число (скажем, 100)

затем случайное число от 0 до 100 (скажем, 40)

и тогда я получаю разницу 100-40 (60...)

Затем я хочу, чтобы программа запускала цикл for "o" (40) раз и еще один цикл for "p" (60) раз...

код для секции циклов выглядит так (имейте в виду, что перед этим есть еще код... Это просто не относится к этому вопросу:

def randomStars(pic,m,n):

  repeat=random.randint(200,300)
  o=random.randint(0,repeat)
  p=repeat-o

  for i in o:
    star(pic,x,y)
  for j in p:
    largeStar(pic,x,y)
  show(pic)

Что происходит, так это то, что я получаю сообщение об ошибке в строке: for i in o: в котором говорится: «итерация по неподходящему типу аргумента, не относящемуся к последовательности».

Я также добавил операторы печати после того, как установлены 3 переменные, и они работают... ex.1 repeat=230; о=103; р=127 пример 2 повтор=221; о=72; р=149

а затем я немедленно пытаюсь запустить цикл for "o" количество раз, и я получаю вышеуказанное сообщение об ошибке... Я не понимаю, как это не является последовательностью. Но, возможно, я просто не понимаю определение последовательности


person Michael MacDonald    schedule 30.10.2012    source источник


Ответы (1)


o и p — целые числа. Для циклов for вам нужно что-то итерируемое. Я думаю, вы можете изменить его на:

for i in range(o):

Это range() документация по Python 2.x

person Michał Niklas    schedule 31.10.2012