Функция для двух пользователей - PullRequest
0 голосов
/ 24 октября 2018

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

def login_system():
    loggedin = False
    while not loggedin:
        login=input("Do you have an account? (yes/no) ")
        loggedin=False
        if login.lower()=="yes":
            login=open("login.csv")
            reader = csv.reader(login)
            username=input("What is your username: ")
            password=input("What is your password: ")
            for row in reader:
                if row[0]==username and row[1]==password:
                    print("Welcome " + username)
                    loggedin=True
                    break
            if loggedin==False:
                print("Invalid username or password. Please try again.")
                continue

        elif login.lower()=="no":
            print(" ")
            print("Make an account.")
            print(" ")
            username=input("What is your username: ")
            password=input("What is your password: ")
            break

        else:
            print("Invalid input.")
            continue
print("User 1:")
login_system()

print("")
print("User 2:")
login_system()

По сути, я хочу, чтобы имя пользователя и пароль отличались от пользователя 1 к пользователю 2, но я понятия не имею, с чего начать, и, похоже, ничего не помогает.Когда я ввожу имя пользователя и пароль для второго пользователя, он перезаписывает ввод, который я сделал для первого пользователя, и я не хочу, чтобы это происходило.Спасибо,

Дилан

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Кажется, вы практикуете Python или простой вопрос, ну, я добавил псевдокод, который вы можете разработать самостоятельно, потому что он прост, и если вы напишите это самостоятельно, это поможет вам подумать в этом парадигме для решения этой проблемы.

Всякий раз, когда вы хотите что-то сделать или реализовать, делайте это поэтапно или записывайте, это очень помогает.

Чтение это кстати.

 def login_system():
        loggedin = False
        while not loggedin:
            login=input("Do you have an account? (yes/no) ")
            loggedin=False
            if login.lower()=="yes":
                login=open("login.csv")
                reader = csv.reader(login)
                username=input("What is your username: ")
                password=input("What is your password: ")
                for row in reader:
                    if row[0]==username and row[1]==password:
                        print("Welcome " + username)
                        loggedin=True
                        break
                if loggedin==False:
                    print("Invalid username or password. Please try again.")
                    continue

            elif login.lower()=="no":
                print(" ")
                print("Make an account.")
                print(" ")
                username=input("What is your username: ")
                password=input("What is your password: ")
                #How to Save Username and password
                #1. Find Two Empty Rows or one empty row and it's corresponding column in CSV file. (Can be done using running a loop on the csv file)
                #2. Store Username password in the corresponding rows and columns above. 


                break

            else:
                print("Invalid input.")
                continue
    print("User 1:")
    login_system()

    print("")
    print("User 2:")
    login_system()
0 голосов
/ 24 октября 2018

В соответствии с вашими требованиями, кажется, что словарь успешно вошедших в систему имен пользователей и паролей может быть лучше для вас, если вы сохраните их

Создайте свой код, как показано ниже.

users_logged_in={}
def login_system():
loggedin = False
while not loggedin:
    login=input("Do you have an account? (yes/no) ")
    loggedin=False
    if login.lower()=="yes":
        login=open("login.csv")
        reader = csv.reader(login)
        username=input("What is your username: ")
        password=input("What is your password: ")
        for row in reader:
            if row[0]==username and row[1]==password:
                print("Welcome " + username)
                #  usernames and passwords you have entered stored in dict
                users_logged_in[username]=password
                loggedin=True
                break
        if loggedin==False:
            print("Invalid username or password. Please try again.")
            continue

    elif login.lower()=="no":
        print(" ")
        print("Make an account.")
        print(" ")
        username=input("What is your username: ")
        password=input("What is your password: ")
        break

    else:
        print("Invalid input.")
        continue
print("User 1:")
login_system()

print("")
print("User 2:")
login_system()

Если вычтобы сохранить порядок имен пользователей, вошедших в систему, перейдите к OrderedDict из коллекций Python.

В противном случае вы можете создать список с кортежами имен пользователей и паролей. Создайте кортеж, как показано ниже в приведенном выше коде.

logged_user_details=(username,passowrd)

и пусть

users_logged_in

будет списком имен пользователей и паролей, добавьте к нему кортеж, созданный выше.

users_logged_in.append(logged_user_details). 

Теперь в вашем списке будут пользователи и пароли, как показано ниже, и порядок вашей записи также будет сохранен.

[(Пользователь1, Пароль1), (Пользователь2, Password2), (User3, Password3)].

Это полностью зависит от цели использования вашего имени пользователя и пароля, независимо от того, используете ли вы List или Dict.

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