Member 13275286 Ответов: 1

Напишите программу, которая считывает одну строку и определяет, является ли она допустимой в качестве пароля


Эта проблема-домашнее задание, которое у меня есть. Я не ищу кого-то, кто мог бы дать мне ответ на вопрос, почему мой код не работает. Ищу толчок в правильном направлении о том, как это исправить. Когда я запускаю это, я получаю

'return' внешняя функция: & lt;string>, строка 25

Я не понимаю, почему это происходит. Сможет ли кто-нибудь мне помочь?

Код см. ниже:




import re

def validate(password):


# calculating the length
    length_error = not( len(password) <= 12 and len(password) >= 6)

# searching for digits
d_error = re.search(r"\d", password) is None

# searching for uppercase
ucase_error = re.search(r"[A-Z]", password) is None

# searching for lowercase
lcase_error = re.search(r"[a-z]", password) is None

# searching for symbols
sym_error = re.search(r"[$#@"+r'"]', password) is None

# overall result
password_ok = not ( length_error or digit_error or uppercase_error or lowercase_error or symbol_error )
  
print 'password_ok ',password_ok,'\nlength_error ',length_error,'\nd_error ',digit_error,'\nucase_error ',ucase_error,'\nlcase_error ',lowercase_error,'\nsym_error ',symbol_error
return 'password_ok'

def main():

# set cmd to anything except quit()
    cmd = ' '
  
# process the user commands
cmd = input(' > ')
while cmd != 'quit':
    password = cmd
if validate(password):
    print "Password is valid"
else:
    print "Password is invalid"

cmd = input(' > ')

main()


Что я уже пробовал:

Я чувствую, что перепробовал все, но не уверен, почему этот код не работает.

1 Ответов

Рейтинг:
0

Peter Leow

Самый основной синтаксис Python заключается в том, что код организован с помощью вдавливание Как было сказано в ошибке, те строки кода, кроме первой, под функцией validate (password) не имеют отступов, что сделало их вне функции, включая оператор return. То же самое относится и к main(). Кроме того, существуют различия в конструкции метода print между различными версиями Python. Вы должны обратиться к официальной документации и онлайн-учебникам для правильного обучения. Я не комментирую вашу логику кода, я сомневаюсь, что это сработает. Делайте шаг за шагом. Удачи.