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

Я пишу код сложности пароля ... Я сделал свою программу, и она говорит, что сравнение с истинным должно быть if cond is true: или if cond:, но я не могу понять это

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

import re

print('Please copy the following: password()')
def password():
    print('Make sure that your password has the following rules:')
    print('1. more than 8 characters')
    print('2. has a compination of uppercase and lowercase letters')
    print('3. has digits')
    while True:
        password == input('password:  ')
        if password < 8:
            break
        print('Password must be at least 8 characters')
        if re.search(r'\d', password):
            if re.search(r'\d', password) == True: 
                print('it has a digit')
            else:
                print('Password must contain digits') 
        if re.search(r'[A-Z]', password):
            if re.search(r'[A-Z]', password) == True:
                print('it has uppercase letters')
            else:
                print('Password must contain upper case letters')
        if re.search(r'[a-z]', password):
            if re.search(r'[a-z]', password) == True:
                print('it has lowercase letters')
            else:
                print('Password must contain lowercase letters')

если в пароле нет строчной буквы, заглавной буквы, цифр нет или она меньше 8 символов, следует сказать так например, я ожидаю, что вывод abcABC скажет, что он должен быть не менее 8 символов и должен содержать цифры.

Ответы [ 3 ]

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

вам не нужно if re.search(r'[A-Z]', password) == True:, просто поставьте if re.search(r'[A-Z]', password), потому что они возвращают Object или None, а в Python if my_variable: эквивалентно if my_variable is not None: в зависимости от типа вашей переменной

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

Я предполагаю, что вы получаете TypeError в этой строке здесь: if password < 8:, заставляя вас думать, что вы не знаете, как использовать операторы if.На самом деле, вы не хотите проверять, является ли пароль числом меньше 8, это будет паролем для мусора, вы хотите проверить ДЛИНУ пароля следующим образом:

if len(password) < 8:

Для дальнейшего использования: публикация сообщения об ошибке EXACT (со всем «мусором») очень полезна для нас, чтобы выяснить, что не так.Вы должны привыкнуть публиковать полный трекбек.

Редактировать: Я также заметил, что в этой строке password == input('password: ') должен быть только один знак равенства.Как написано, python проверяет, одинаковы ли они, заключает «нет» и затем переходит на следующую строку.С одним знаком равенства вы установите то, что было введено в переменную пароля.

0 голосов
/ 06 мая 2019

Вы можете просто использовать условие, как показано ниже:

if condition:
    # Do something
...