簡體   English   中英

即使在輸入后程序仍然顯示無

[英]Program keeps displaying None even after input

該代碼是一個簡單的登錄代碼,它將登錄信息保存到 .txt 文件中,然后在登錄時讀取文本文件以檢查用戶詳細信息。

代碼一直運行,直到我創建一個帳戶或嘗試登錄並輸入我的用戶名和密碼,然后它返回 None。 我不明白為什么它會返回 None

def AskAccount():
    account = input("\nDo you have an account setup 
    already? (Y/N)\n")
    if account == "Y":
        loginexisting()
    elif account == "N":
        createacc()
    else:
        print("please type Y or N")
        AskAccount()

def loginexisting():
    print("Your account already exists, please login\n")
    username = input("Please enter your username:")
    password = input("Please enter your password:")

    f = open('accounts.txt', 'r')
    info = f.read()
    info = info.split()
    if username in info:
        index= info.index(username) +1
        usr_password = info[index]
    if usr_password == password:
        return "Welcome Back," + username
    else:
        return "password entered is wrong"
else:
    print("Username is not correct")
    print(createacc())


def createacc():
    print("Lets create an account for you\n")
    username = input("Please input your username:\n")
    password = input("please input your password\n")
    f = open("accounts.txt",'r')
    info = f.read()
    if username in info:
    return "Name Unavailable. Please Try Again"
    f.close()

    f = open("accounts.txt",'w')
    info = info + " " + username + " " + password
    f.write(info)
    f.close()

    print("Your account details have been saved\n")
    print("please login\n")


print(AskAccount())

在文件末尾,您print(AskAccount()) 這將打印函數的返回值,但AskAccount沒有返回語句,因此它返回None 如果您希望它打印所需的輸出,則需要添加 return 語句。

def AskAccount():
    account = input("\nDo you have an account setup 
    already? (Y/N)\n")
    if account == "Y":
        return loginexisting()
    elif account == "N":
        return createacc()
    else:
        print("please type Y or N")
        return AskAccount()

暫無
暫無

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

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