Я борюсь с моей программой rater password. Как я могу убедиться, что когда я вставляю пароль, моя программа возвращает силу пароля. Когда я запускаю эту программу, он говорит, что password_strength хранится на .....) является ли возвращение, которое я вызываю в конце моей программы, неправильно?Как я могу получить свою программу, чтобы вернуть силу пароля
print ("Welcome to this password rater program")
print ("Your password needs to have a minimum of 6 characters with a maximum of 20 characters.")
print ("Your password can contain lowercase and uppercase characters, numbers and special characters")
print("")
password = input("Please insert your password: ")
def check_len(password):
l = len(password)
if 6 < l < 20:
x = check_char(password, l)
else:
x = 0
return x
def check_char(password, l):
for i in range(l):
ascii = ord(password[i])
num = 0
upper = 0
symbols = 0
lower = 0
space = 0
if 96 < ascii < 123:
lower = 15
elif 47 < ascii < 58:
num = 25
elif 64 < ascii < 91:
upper = 25
elif ascii == 32:
space = 30
else:
symbols = 25
total = ((lower + num + upper + space + symbols) * len(password))
return total
def password_strength(total):
if total >= 1000:
print("Your chosen password is Very strong")
elif 700 < total < 999:
print("Your chosen password is strong")
elif 500 < total < 699:
print("your chosen password is medium")
elif total <= 500:
print("Your chosen password is weak")
return total
strength = check_len(password)
print(password_strength(strength))
Вы печатаете ссылку на эту функцию. Это должно быть 'print (password_strength (total))' где 'total' - это число, возвращаемое функцией' check_char() ' –
Что такое' for i in range (l) 'this? Вы не можете получить доступ к 'l' из' check_char() ', я предлагаю вам сначала прочитать этот http://stackoverflow.com/questions/291978/short-description-of-python-scoping-rules. Вы должны называть' check_len' из 'check_char', а' password' должен быть параметром 'check_char' – Antonio
Ошибки в вашем коде: 1)' check_char' не принимает никаких данных, но 'check_len' предоставляет два входа' (password, l) '2) 'check_len' ничего не возвращает 3)' check_char' не вызывается и, следовательно, ожидает, что какой-либо возврат из него не подходит. 4) Существует ошибка в вашем заявлении на печать.Я считаю, что вам нужно сделать что-то вроде 'print (password_strength (check_len (input)))' – Prasanna