2017-02-07 23 views
-4

私はこのパスワードジェネレータをwhileループに入れようとしました。私は私の割り当てに使用するワードリストを作成することができました。Whileループは同じ結果を出力します。Python 2.7

これまでのところ、プログラムは実行すると常に同じ結果を出力します。私のプログラムのためのコードは次のとおりです。

from random import shuffle 
data = open('randomwords.txt', 'r').read().split() 
shuffle(data) 

# Creates password from Gadsby text file 
password = '' 
for x in data[:3]: 
    password += x 

while(True): 
    print password.replace('o', '0') 

誰もが、それは別のパスワードをプリントアウトして、このコードを変更する方法を知っているのではなく、常に同じパスワードを印刷ありません。

+2

印刷するたびにデータをシャッフルする必要はありませんか? –

+0

'password'は** once **のみ構築されます。ループでは、 'o'を' 0'に置き換えるだけです。だからもう何も変わりません... –

+0

私は、すべてのことをwhileループに入れて、どうしようとしてもうまくいきません – Quarismo

答えて

1

これはそれを行うための一つの方法である:これを行うの

from random import shuffle 
with open('randomwords.txt', 'r') as data: 
    data = data.read().split() 
    while(True): 
     shuffle(data) 
     password = '' 
     for x in data[:3]: 
      password += x 
     print password.replace('o', '0') 
0

より神託の方法はこれだろう。

from random import sample 
with open('randomwords.txt', 'r') as file: 
    data = file.read().split() 
    while(True): 
     print ''.join(sample(data, 3)).replace('o', '0') 
関連する問題