0

さて、プログラムに3つのステップを実行させようとしています...

1: 渡されるパラメーターである (m,n) の間の数値を選択します (変数「repeat」に設定)

2: 0 とステップ 1 の変数 "repeat" の間の乱数を選択します。(変数「o」に設定)

3: "repeat" から "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 つの変数が設定され、それらが機能している後に、print ステートメントも追加しました... 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()Python2.xのドキュメントです

于 2012-10-31T10:18:20.900 に答える