在函数中声明的用户输入变量不在其他函数/在Python中的主要工作?
问题描述:
我的代码中的一个函数需要用户输入的二进制数字,而另一个函数将该数字转换为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没有变量声明 –