0

好的,所以我试图让程序执行三个步骤......

1:在(m,n)之间选择一个数字,这是传入的参数(设置为变量“repeat”)

2:从第一步中选择一个介于 0 和变量“重复”之间的随机数。(设置为变量“o”)

3:从“重复”中减去“o”并将结果设置为变量“p”

因此我得到一个数字(比如说 100)

然后是 0-100 的随机数(比如说 40)

然后我得到 100-40 (60...) 的差异

然后我希望程序运行一个for循环“o”(40)次和另一个for循环“p”(60)次......

for 循环部分的代码如下所示(请记住,在此之前还有更多代码......它与这个问题并不真正相关:

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; o=103;p=127 ex.2 重复=221;o=72;p=149

然后我立即尝试让 for 循环运行“o”次,并收到上述错误消息......我不明白它是如何成为非序列的。但也许我只是不理解序列的定义

4

1 回答 1

0

o并且p是整数。对于for循环,您需要可迭代的东西。我认为您可以将其更改为:

for i in range(o):

这是range()Python 2.x 的文档

于 2012-10-31T10:18:20.900 回答