Python UnboundLocalError:局部变量';用户a';分配前参考
我真的不知道如何使下面的代码工作。我得到一个例外: UnboundLocalError:赋值前引用了局部变量“u” 有人能帮我吗?我必须说明我是Python新手。 提前感谢。解决方案: 使用一些默认值作为参数:Python UnboundLocalError:局部变量';用户a';分配前参考,python,Python,我真的不知道如何使下面的代码工作。我得到一个例外: UnboundLocalError:赋值前引用了局部变量“u” 有人能帮我吗?我必须说明我是Python新手。 提前感谢。解决方案: 使用一些默认值作为参数: def if_statement(user_a='no selection'): user_choice = raw_input("Pick 1 or 2\n") if user_choice == "1": u = input("What would y
def if_statement(user_a='no selection'):
user_choice = raw_input("Pick 1 or 2\n")
if user_choice == "1":
u = input("What would you like A to equal?\n")
if_statement(user_a=u)
elif user_choice == "2":
print("A equals: " + user_a)
if_statement(user_a=user_a)
if_statement()
或者,您也可以像这样使用global
:
user_a = "No selection"
def if_statement():
global user_a # here is the trick ;-)
user_choice = raw_input("Pick 1 or 2\n")
if user_choice == "1":
user_a = input("What would you like A to equal?\n")
if_statement()
elif user_choice == "2":
print("A equals: " + user_a)
if_statement()
if_statement()
它工作得非常完美——感谢阿加尼刚刚使用了print(“A等于:+user_A”),这在第二个版本中工作得很好。第一个选项可能不是最好的,因为在我的实际代码中,有许多不同的变量以及用户。最后,为什么要使用原始输入而不是输入如果您在python3上,原始输入变成了输入,但在python2上,它们都存在并且行为方式不同:
user_a = "No selection"
def if_statement():
global user_a # here is the trick ;-)
user_choice = raw_input("Pick 1 or 2\n")
if user_choice == "1":
user_a = input("What would you like A to equal?\n")
if_statement()
elif user_choice == "2":
print("A equals: " + user_a)
if_statement()
if_statement()