Как заставить пользователя повторно вводить ввод, если он не соответствует требованию цикла for? - PullRequest
0 голосов
/ 27 сентября 2019

Вот мой код, требующий от пользователя ввести количество символов пароля, которое он хочет сгенерировать.Если они введут число <8, я хочу заставить их повторно войти.В противном случае пароль будет сгенерирован.Но я застрял с циклом for, так как он создавал неопределенную печать. </p>

Любая помощь будет оценена.

import string
import random

lower_string = string.ascii_lowercase
upper_string = string.ascii_uppercase
special_string = "!@#$%&*()[]{}"
number = '0123456789'

list_string = [lower_string, upper_string, special_string, number]

password = ''

password_length = int(input("Enter length of password: "))


while password_length < 8:
    print("Hey, this password's length is not good. Enter > 8")
    continue
else:
    for _ in range(password_length):
        x = random.choice(random.choice(list_string)) 
        password = password + x
print(password)

1 Ответ

1 голос
/ 27 сентября 2019

Попробуйте поместить оператор input внутри цикла while

while True:
    password_length = int(input("Enter length of password: "))
    if password_length < 8:
        print("Hey, this password's length is not good. Enter > 8")
    else:
        break
...