我的代碼應該爲用戶打印一個菜單,讓他們選擇一個選項,並根據他們選擇的選項,他們輸入一個具有一定基數的數字。我需要一個函數來收集他們的選擇,一個函數在他們輸入一個選擇後收集他們的號碼,一個函數驗證他們的號碼是否在正確的基礎上。我一直收到一個錯誤,因爲我在其中一個函數中聲明的變量「userChoice」在我嘗試在main中使用時是「未定義的」。我怎樣才能解決這個問題?在其他函數中聲明的變量在主python 3中不起作用?
def printmenu(userChoice):
flag = True
while(flag == True):
print("Enter 2 for base 2")
print("Enter 8 for base 8")
print("Enter 16 for base 16")
userChoice = input("Enter 0 to stop: ")
if userChoice not in ["2", "8", "16", "0"]:
print("Invalid choice\n")
flag = True
else:
flag = False
return(userChoice)
def askUserValue():
flag2 = False
while(flag == True):
base2 = input("Enter a base 2 number: ")
flag2 = validateInput(base2)
newBase2 = base2
return (newBase2)
def isbase2(base2):
try:
base2 = int(input("Enter a base 2 number" , 2))
flag1 = False
return (True)
except ValueError:
flag1 = True
return (False)
else:
flag1 = True
return (False)
def main():
if (printmenu(userChoice) == "2"):
askUserValue()
main()
爲什麼你hav e userChoice設置爲printmenu的參數,當它在方法內創建時? – Pintang
在Python中沒有變量聲明... –
btw在python中不需要太多的括號。你的'if',''while'和'return'語句不需要括號的外層。 – quamrana