Я пытаюсь создать логин.
Я не уверен, как создать / импортировать библиотеку имен пользователей и паролей; Я сейчас пытаюсь найти ответ, но спросил в любом случае.
сопоставление имен пользователей с паролями // (частично решено; необходимо добавить несколько имен пользователей с совпадающими паролями)
Как создать цикл, если пароль неверный? Если введен неправильный пароль, пользователю необходимо снова ввести пароль для ввода пароля. // (решено; используйте [печать] вместо [возврат])
Как ограничить цикл определенным количеством попыток ввода пароля.
Ниже я попробовал:
def check_password(user, password):
""" Return True if the user/pass combo is valid and False otherwise. """
# Code to lookup users and passwords goes here. Since the question
# was only about how to do a while loop, we have hardcoded usernames
# and passwords.
return user == "pi" and password == "123"
def login ():
"" "Запросите имя пользователя и пароль, несколько раз, пока он не заработает.
Верните True только в случае успеха.
"" "
try:
while True:
username = raw_input('username:')
password = raw_input('password:')
if check_password(username, password):
break
else:
print "Please try again"
print "Access granted"
return True
except:
return False
Для тестирования
Логин ()
это исправлено отсутствие запроса цикла при неправильном пароле. * Из-за использования 'return' вместо 'print'; и "если" вместо "пока
def login():
#create login that knows all available user names and match to password ; if password is incorect returns try again and propmts for password again#
username = raw_input('username:')
if username !='pi':
#here is where I would need to import library of users and only accept those usernames; needs to be like 'pi' or 'bob' or 'tim'etc.
print'user not found'
username = raw_input('username')
password = raw_input('password:')
#how to match password with user? store in library ?
while password != '123':
print 'please try again' # You have to change the 'return' to 'print' here
password = raw_input('password')
return 'access granted'
#basically need to create loop saying 'try again' and prompting for password again; maybe smarter to ask limited number of
#times before returning 'you have reached limit of attempts#
if password == '123':
#again matching of passwords and users is required somehow
return 'access granted'
Логин ()
Имя пользователя: wronguser
Пользователь не найден
usernamepi
Пароль: wrongpass
пожалуйста, попробуйте снова
password123
«доступ предоставлен»
# первая попытка перед обновлением благодаря: Merigrim:
def login ():
# Create login that knows all available user names and match to password;
# if password is incorect returns try again and propmts for password again#
username = raw_input('username:')
if username !='pi':
# Here is where I would need to import library of users and only
# accept those usernames; needs to be like 'pi' or 'bob' or 'tim'etc.
return 'user not found'
password = raw_input('password:')
# How to match password with user? store in library?
if password != '123':
return 'please try again'
password = raw_input('password:')
if password != '123':
return 'please try again'
# Basically need to create loop saying 'try again' and prompting
# for password again; maybe smarter to ask limited number of
# times before returning 'you have reached limit of attempts
elif password == '123':
# Again matching of passwords and users is required somehow
return 'access granted'
Вот как это работает в настоящее время:
>>> login()
username:pi
password:123
'access granted'
>>> login()
username:pi
password:wrongpass
'please try again'
Мне нужно создать цикл, чтобы снова запросить пароль.