3

これは私が持っているものですが、これは乱数を一度だけ生成し、その数を無限に出力します:

import random

x = random.randint(0,10)
y = 7
while x != y:
    print(x)
4

2 に答える 2

6

次のようなもの(while内で条件を移動):

stop_at = 7
while True:
    num = random.randint(0, 10)
    if num == stop_at:
        break
    print num

または、完全なリファクタリング:

from itertools import starmap, repeat, takewhile
from random import randint

for num in takewhile(lambda L: L != 7, starmap(randint, repeat( (0, 10) ))):
    print num
于 2012-11-01T13:00:29.037 に答える
2

ループ内で新しい乱数を生成する必要があります。

import random

x = random.randint(0,10)
y = 7
while x != y:
    print(x)   #Print old (non-7) random number
    x = random.randint(0,10)  #pick a new number.  I hope it's 7 so we can end this madness

print("You found {0}.  Congrats.  Go have a beer.".format(y))
于 2012-11-01T12:59:08.917 に答える