簡體   English   中英

從子程序返回時變量沒有賦值? Python 3?

[英]Variable not being assigned value when returned from subprogram? Python 3?

我試圖從子程序中返回一個值,但是當嘗試在主程序中使用該變量時,它出現一個錯誤,表明尚未分配值。

correct = 0
def subprogram():
    correct2 = 0
    loop = 0
    while loop == 0:
        loop2 = 0
        memberID = input("Please enter your member ID: ")
        if memberID == "1495":
            print("Login successful!")
            loop = 1
            correct2 = 1
        else:
            print("Login unsuccessful.")
            while loop2 == 0:
                decision = input("<T>ry Again or <E>xit to Menu? ")
                if decision == "t" or decision == "T":
                    print("Ok, restarting.")
                    print("")
                    loop2 = 1
                elif decision == "e" or decision == "E":
                    print("Ok, exiting to main menu.")
                    print("")
                    loop2 = 1
                    loop = 1
                    correct2 = 0
                else:
                    print("-----------------------------------------------------")
                    print("Sorry, this is not a valid answer. Please try again.")
                    print("-----------------------------------------------------")
        continue
    return correct2

#main
while correct == 0:
    print ("Are you a member?")
    member = input("<Y>es or <N>o? ")
    if member == "y":
        correct = subprogram()
        if correct2 == 0:
            correct = 0
        elif correct2 == 1:
            correct = 1
    elif member == "Y":
        correct = subprogram()
        if correct2 == 0:
            correct = 0
        elif correct2 == 1:
            correct = 1
    elif member == "n" or member == "N":
        print("Ok, not a problem! Welcome!")
        correct = 1
    else:
        print("-----------------------------------------------------")
        print("Sorry, this is not a valid answer. Please try again.")
        print("-----------------------------------------------------")
        correctVIP = 0
print("END")

如何解決此錯誤? 謝謝。

在您的主while循環中,您未定義correct2變量,因此在您嘗試執行以下操作時會引發錯誤:

if correct2 == 0:

您分配子程序的結果來correct

correct = subprogram()

您可能打算這樣做的地方:

correct2 = subprogram()

暫無
暫無

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

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