Как я могу перезапустить мой код из оператора else? - PullRequest
0 голосов
/ 20 мая 2019

Здесь у меня есть некоторый код, над которым я работал (Python 3.4), и я не могу понять, как заставить программу перезапуститься после оператора else.Я знаю, что нет оператора goto.

Я пытался возиться, помещая оператор if в цикл while true, но он просто зацикливал строку print и печатал вывод снова и снова.снова и снова

import random
    import string

    PassGen = ""

    length = int(input("how many characters would you like your password to have 8-15? "))

    if 8 <= length <=15:
        while len(PassGen) != length:
            Num1 = random.choice(string.ascii_uppercase)
            Num2 = random.choice(string.ascii_lowercase)
            Num3 = random.choice(string.digits)
            everything = [Num1, Num2, Num3]
            PassGen += random.choice(everything)
        print (PassGen)
    else:
        print ("that is an incorrect value")

В данный момент все работает идеально, принимая данные от пользователя, а затем проверяет, находится ли значение между 8-15 .Если это так, он создает пароль с внутренней петлей while.В противном случае выводится неверное значение.

1 Ответ

1 голос
/ 20 мая 2019

Вы были близки. while True хорошо, но вам также нужно break, чтобы выйти из него:

while True:
    length = int(input("how many characters would you like in your password"))
    if 8 <= length <=15:
        while len(PassGen) != length:
            Num1 = random.choice(string.ascii_uppercase)
            Num2 = random.choice(string.ascii_lowercase)
            Num3 = random.choice(string.digits)
            everything = [Num1, Num2, Num3]
            PassGen += random.choice(everything)
        print (PassGen)
        break
    else:
        print ("that is an incorrect value")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...