簡體   English   中英

兩個用戶的功能

[英]Function for two users

我有兩個用戶的登錄系統。 我有重復的代碼,但我將其設為使代碼更有效的功能。 但是,我不太確定如何為每個用戶更改一些變量。 這是代碼:

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的用戶名和密碼時,它將覆蓋我對用戶1的輸入,並且我不希望這種情況發生。 謝謝,

迪倫

看來您正在練習python或一個簡單的問題,好吧,我添加了可以自行開發的Pseudo代碼,因為它很簡單,如果您自己編寫此代碼,它將幫助您考慮該范式以解決此問題。

每當您想做某事或實施某件事,分步進行或寫下來時,它都會有很大幫助。

閱讀順便說一句。

 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()

根據您的要求,如果您存儲了成功登錄的用戶名和密碼字典,則對您來說可能會更好

使您的代碼如下。

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()

如果要保留登錄到系統中的用戶名的順序,請從Python集合轉到OrderedDict

否則,您可以使用用戶名和密碼的元組創建列表。

logged_user_details=(username,passowrd)

然后讓

users_logged_in

是用戶名和密碼的列表,將上面創建的元組附加到該列表。

users_logged_in.append(logged_user_details). 

現在,您的列表中將包含用戶和密碼,如下所示,並且輸入順序也將保留。

[(User1,Password1),(User2,Password2),(User3,Password3)]。

無論使用List還是Dict方法,這完全取決於您存儲用戶名和密碼的使用目的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM