2017-11-10 24 views
-1

さて、私は作成した暗号化に少し洗練を加えています。 私は作成した辞書から一定量の文字を生成するためにWhileループを実装しようとしています。その後、文字が変数に追加されるのを確認し、必要な文字数に達した後にwhileループを終了します。そして何らかの理由でwhileループは、たとえ私がreturn 0やbreakなどを使用しても終了しません。ifステートメントとブレークでWhileループを終了します

Alphabet = ["a", "b", "c", "d", "e", "f" "g", "h", "i", "j", "k", "l",  "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", '/', '.', ',', '\'', ';', '\\', ']', '[', '{', '}', '|', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '+', '-', '0', '0', '2', '3', '4', '5', '6', '7', '8', '9'] 

while True: 
    generaterandom = random.SystemRandom.choice() 
    calc0 = len(generaterandom) 
    print(generaterandom) 
    calc02 = 10 
    if generaterandom == "10": 
     break 
+0

コードに入らずに(ru n)、チェックはおそらく次のようになります。 if calc0 == calc02: – Gary02127

答えて

0
if generaterandom == "10": 

これはあなたの問題であり、あなたはgeneraterandomは、あなたが何をしたいのか10の値を持つ文字列であるかどうかをチェックしていることが10個の文字に当たったとき、それが終了していているので、あなたは変更する必要がありますあなたのif文:

if len(generaterandom) == 10: 
    break 

これは、変数generaterandom内の文字の量が10に等しく、それが10に等しいとき、あなたのループが壊れるかどうかを確認するためにそれを変更します。

それが変数上で動作するようにそれは、たとえば、再構築あなたのループを動作しない場合:

loop = True 
while loop: 

それを起動するには、それを終了するには:

if len(generaterandom) == 10: 
    loop = False 
0

はあなたを再構築してみてくださいループはこのようになります:

Alphabet = ["a", "b", "c", "d", "e", "f" "g", "h", "i", "j", "k", "l",  "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", '/', '.', ',', '\'', ';', '\\', ']', '[', '{', '}', '|', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '+', '-', '0', '0', '2', '3', '4', '5', '6', '7', '8', '9'] 
bool = 1 
while bool == 1: 
    generaterandom = random.SystemRandom.choice() 
    calc0 = len(generaterandom) 
    print(generaterandom) 
    calc02 = 10 
    if len(generaterandom) == "10": 
     bool = 0 
関連する問題