Python范围和非本地问题

时间:2015-12-26 09:28:54

标签: python python-3.x scope

我是Python新手,对整个非局部事物有点困惑。这是代码的问题片段:

        positon = 0b0
        while True:
            pos_choice = input("\tPlease enter your choice: ").lower()
            if pos_choice == '1':
                position = position | Baseball.pitcher
                break
            elif pos_choice == '2':
                position = position | Baseball.catcher
                break
            elif (pos_choice == 'd') and (position != 0b0):
                break
            elif (pos_choice == 'd') and (position == 0b0):
                print("\tChoose a position.")
            else:
                print("Invalid choice.")
        print(position)

所以这引起了我的注意:

Traceback (most recent call last):
File "driver.py", line 252, in <module>
load_student()
File "driver.py", line 142, in load_student
position = position | Baseball.catcher
UnboundLocalError: local variable 'position' referenced before assignment

基于我对其他问题的答案所读到的内容,问题在于问题&#34;位置&#34;是从原始调用中嵌套了两个循环(是吗?)。

我的主要问题是我无法弄清楚如何使用非本地绑定两个位置,尽管我尝试了各种解决方案但无济于事。另外,使用非本地禁忌就像使用全球时一样吗?谢谢你的帮助!

2 个答案:

答案 0 :(得分:0)

您的代码中有拼写错误。在声明中,变量拼写为positon而不是position

答案 1 :(得分:0)

你的第一行有一个简单的拼写错误。