пока допустимый не будет введен с циклом while. Мне нужно время, но где?

avatar
gokce
26 февраля 2021 в 06:44
116
1
0

Мне нужно изменить программу с помощью цикла while, чтобы постоянно запрашивать у пользователя пароль. определение user_input(): """ принимает ввод от пользователя """ input1 = input("Введите пароль:") если length_check(input1) != True или char_check(input1) != True: выход() elif length_check(input1) и char_check(input1): input2 = input("Повторно введите пароль: ")

return input1, input2

def check_passwords(input1, input2): """ Вычислите и верните ускорение свободного падения. Обычно это было бы одну строку Docstring, как в function1, но я хотел предоставить пример многострочной строки документации. Вы можете использовать их, когда функция нуждается в дополнительное пояснение. """ если ввод1 == ввод2: print("Пароль изменен") Элиф ввод2 != ввод1: print("Пароль не изменен")

def length_check(input1): если len(input1) <= 8: print("Слишком короткий пароль. Минимальная длина 8 символов.") вернуть ложь еще: вернуть Истина

задание char_check(input1): верхний регистр = [] числа = список (диапазон (0, 10)) для я в диапазоне (65, 91): верхний регистр.append(chr(i))

counter = 0
for i in input1:  # Batman Surfs
    if i in uppercase:
        counter += 1
# print(counter)
if counter >= 2:
    if not any(char.isdigit() for char in input1):
        print('Password should have at least one numeral')
        return False
    else:
        return True

    # for i in input1:#Batman Surfs 1
    #     if i in numbers:
    #         return True
    #     else:
    #         print("Password must contain at least one number.")
    #         return False

else:
    print("Password must contain at least two uppercase letters.")
    return False

деф main(): """ Объясните, ЧТО делает main() """

input1, input2 = user_input()

char_check(input1)
check_passwords(input1, input2)

# function1(12, 13)
# m_e = 5  # mass in kg
# r_e = 6  # radius in metres
# gravity_on_earth = function2(m_e, r_e)
# print(gravity_on_earth)
enter code here

основной()

Источник
Kristian
26 февраля 2021 в 06:55
0

просто измените строку 5 с exit() на return user_input(). не совсем используя while, но вместо этого используя рекурсию

gokce
26 февраля 2021 в 07:00
0

ваш ответ супер, но учитель хочет, чтобы мы использовали его в то время как :<

gokce
26 февраля 2021 в 07:01
0

Измените функцию программы, чтобы она постоянно запрашивала у пользователя пароль до тех пор, пока не будет введен правильный пароль. Ваше решение должно использовать цикл while. Функционал из предыдущих частей должен остаться. Введите новый пароль: batman Пароль слишком короткий. Минимальная длина 8 символов. Введите новый пароль: batman rock Пароль должен содержать не менее двух символов верхнего регистра. Введите новый пароль: Пароль Batman Rocks должен содержать хотя бы одну цифру. Введите новый пароль: Batman Rocks 1 Повторно введите пароль: Batman Rocks 1 Пароль изменен.

Kristian
26 февраля 2021 в 07:03
0

отредактируйте свой вопрос, чтобы добавить эти детали, а не публиковать его как комментарий

Ответы (1)

avatar
Kristian
26 февраля 2021 в 07:07
1

Измените функцию user_input(), чтобы она возвращала None (значение NULL в python), когда ввод недействителен

def user_input():
    """ takes input from user """
    input1 = input("Enter a password : ")
    if length_check(input1) != True or char_check(input1) != True:
        # exit() # deleted
        return None, None # added
    elif length_check(input1) and char_check(input1):
        input2 = input("Reenter password: ")

    return input1, input2

Изменить функцию main() на цикл while ввод недействителен (мы знаем, что он недействителен, если он возвращает None)

def main():
    """ Explain WHAT main() is doing """

    input1, input2 = user_input()
    while input1 == None and input2 == None: # added
        input1, input2 = user_input() # added

    char_check(input1)
    check_passwords(input1, input2)

    # function1(12, 13)
    # m_e = 5  # mass in kg
    # r_e = 6  # radius in metres
    # gravity_on_earth = function2(m_e, r_e)
    # print(gravity_on_earth)
    # enter code here # deleted


main()

Я добавил комментарий с # added для строк, которые я добавляю, и комментарий с # deleted для строк, которые я удаляю из вашего кода.