1
我的代碼中的一個函數需要用戶輸入的二進制數字,而另一個函數將該數字轉換爲10的數字。出於某種原因,我的變量不能正常工作。功能「base2TO10」不識別被定義爲「base2」的用戶輸入。我該如何解決這個問題,讓主要運行我所有的功能?在函數中聲明的用戶輸入變量不在其他函數/在Python中的主要工作?
def isBase2():
flag2 = True
while(flag2 == True):
base2 = input("Enter a base 2 number: ")
try:
base2 = int(base2 , 2)
flag1 = False
return True
except ValueError:
flag1 = True
else:
flag1 = True
return base2
**def base2TO10():
b = base2
number = 0
for idx, num in enumerate(b[::-1]):
base2 += int(num)*(2**idx)
return number**
def main():
if printmenu() == "2":
askUserValue()
isBase2()
base2TO10()
這是因爲你的變量'base2'不在範圍之內。您可以在這裏瞭解[函數範圍](http://python-textbok.readthedocs.io/en/1.0/Variables_and_Scope.html)。 – blakev
您需要了解變量範圍規則。您正在使用局部變量。你*可以*使你的變量全局範圍,但這不是一個好的設計方法。相反,您應該將數據作爲參數並從您的函數返回數據。另外,這是一個術語nitpick,但Python沒有變量聲明 –