Страница входа постоянно повторяется и составляет меню - PullRequest
2 голосов
/ 12 января 2020

Здравствуйте. Я пытаюсь написать программу, которая запрашивает у пользователя имя пользователя и пароль. Если его имя пользователя равно admin, а его пароль равен 123, тогда программа должна вывести «You are in». Если пользователь вводит неправильный ответ три раза, он навсегда блокируется из программы. Программа должна сначала просмотреть текстовый файл, и если он содержит номер 0, программа переходит на страницу входа, но если он содержит 1, программа завершается. Номер 1 должен быть записан в текстовом файле, если пользователь трижды ввел неправильный пароль.

Проблема в том, что программа продолжает цикл ввода имени пользователя и пароля. Как я могу это исправить, пожалуйста? Я также wi sh для ввода меню, если пользователь получает правильное имя пользователя и пароль. После какой строки я должен войти в меню? Заранее благодарен за помощь!

f=open(r"C:\Users\User\Desktop\Resources\locked.txt","r")
contents = f.read()
if contents == '0':
    username = 'admin'
    password = '123'

attempts = 0
while attempts <3:
    username=input('What is your username?')
    password=input('What is your password?')

if username == 'admin' and password == '123':
        print('You are in')

else:
    attempts+=1
    print('Incorrect username/password')

if attempts==3:
    f=open(r"C:\Users\User\Desktop\Resources\locked.txt","w")
    for line in f.readlines()[1]:
        f.write('\n')
        f.write('1')
        f.close()
        print('Your account is locked...please contact developer')

1 Ответ

0 голосов
/ 12 января 2020

Если вы ищете только 1 или 0 в файле, нет необходимости писать несколько строк. Это должно работать для вас здесь:

Переформатировать, чтобы разрешить, если 1 автоматически останавливает пользователя.

file = open("locked.txt","r")
contents = file.read()
if contents == '0':
    username = 'admin'
    password = '123'
    file.close()
    attempts = 0
    while attempts < 3:
        username=input('What is your username?')
        password=input('What is your password?')
        if username == 'admin' and password == '123':
            print('You are in')
            attempts = 4
        else:
            attempts+=1
            print('Incorrect username/password')
    if attempts==3:
        file = open("locked.txt","w")
        file.write("1")
        file.close()
        print('Your account is locked...please contact developer')
else:
    print('Your account is locked...please contact developer')
file.close()

Приведенный выше вывод будет выглядеть следующим образом:

runfile('D:/ProgrammingSource/Python/PracticeVarious/SO_Question.py', wdir='D:/ProgrammingSource/Python/PracticeVarious')

What is your username?bogus1

What is your password?bogus1
Incorrect username/password

What is your username?bogus2

What is your password?bogus2
Incorrect username/password

What is your username?bogus3

What is your password?bogus3
Incorrect username/password
Your account is locked...please contact developer

Когда вы попытаетесь снова запустить программу, она скажет:

runfile('D:/ProgrammingSource/Python/PracticeVarious/SO_Question.py', wdir='D:/ProgrammingSource/Python/PracticeVarious')
Your account is locked...please contact developer

И пока вы не измените информацию о файле с 1 на 0, он останется заблокированным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...