Как я могу создать программу входа в систему, которая проверяет наличие на Python? - PullRequest
0 голосов
/ 23 сентября 2018

Я делаю логин пользователя для небольшого проекта, над которым я работаю в школе, практикую свою обработку файлов и еще много чего.По большей части все идет хорошо, но у меня возникают проблемы, когда я пытаюсь создать новых пользователей.Новому пользователю необходимо создать исходное имя пользователя и пароль, в противном случае он должен сообщить им, что их выбор недоступен.По какой-то причине он отлично работает с первым именем пользователя и паролем в файлах и заставляет пользователя повторить попытку.Но когда я пытаюсь создать нового пользователя с именем, которое, как я знаю, у меня не должно быть, это позволяет мне.

def signUp():
    username = str(input("\nPlease enter your new username "))
    file = open ("usernames.txt","r")
    for x in file:
        if username in x:
            print ("\nThat username is already in use, please try another")
            signUp()
        else:
            print ("Your username is now ",username)
    file.close()

    password = input("\nPlease create a password ")
    file = open ("passwords.txt","r")
    for x in file:
        if password in x:
            print ("\nThat password is already in use, please try another")
            signUp()
        else:
            print ("Your password is now ", password," Don't forget it")
    file.close()   

    file = open ("usernames.txt","a")
    file.write (username)
    file.write ("\n")
    file.close()

    file = open ("passwords.txt","a")
    file.write (password)
    file.write ("\n")
    file.close()

    print ("\nYour login details have been saved")
    print ("Please login")
    logIn()

В файле имени пользователя у него есть имена:

Алекс

Джош

Файл пароля имеет:

123qwe

ewq321

Код работает для Алекса и 123qwe и предотвращает их повторение, но не для Джоша или ewq321.На данный момент я не ищу никаких других улучшений.Я все уточню позже.Сейчас мне просто нужна помощь с этим небольшим затруднением.Я понимаю, что мое объяснение немного сбивает с толку, поэтому может помочь скопировать то, что я уже сделал, и поиграть с этим.Очевидно, что это не весь код, поэтому он может не иметь смысла.

1 Ответ

0 голосов
/ 23 сентября 2018

Проблема в обоих циклах, точно в предложении else.Ваш код проверяет, что, если единственное первое имя пользователя уже существует, это потому, что вы ввели в цикл else, а также вам нужно выйти из программы, если имя пользователя уже существует, используя return.

Вотновый код:

def signUp():
    username = str(input("\nPlease enter your new username "))
    file = open ("usernames.txt","r")
    for x in file:
        if username in x:
            print ("\nThat username is already in use, please try another")
            signUp()
            return

    print ("Your username is now ",username)
    file.close()

    password = input("\nPlease create a password ")
    file = open ("passwords.txt","r")
    for x in file:
        if password in x:
            print ("\nThat password is already in use, please try another")
            signUp()
            return

    print ("Your password is now ", password," Don't forget it")
    file.close()   

    file = open ("usernames.txt","a")
    file.write (username)
    file.write ("\n")
    file.close()

    file = open ("passwords.txt","a")
    file.write (password)
    file.write ("\n")
    file.close()

    print ("\nYour login details have been saved")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...