首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UnboundLocalError:局部变量'x‘

UnboundLocalError:局部变量'x‘
EN

Stack Overflow用户
提问于 2018-09-21 05:01:48
回答 1查看 40关注 0票数 0

我正在尝试创建一个初学者级别的程序,以便更好地理解python编程。一个简单的while true循环,它将值1加到X上,并根据x是否小于或大于10打印“帮助”或“正在做某事”;然后当x大于20时中断。我还尝试添加键盘中断,如果不是太复杂的话中断循环。任何提示都有帮助,我会得到一个错误

代码语言:javascript
复制
Traceback (most recent call last):
  File "so.py", line 23, in <module>
    help()
  File "so.py", line 11, in help
    x += 1
UnboundLocalError: local variable 'x' referenced before assignment

代码:

代码语言:javascript
复制
import time

x = 1

try:

    def help():

        print("Help.")
        time.sleep(2)
        x += 1


    def doStuff():

        print("Doing Stuff")
        time.sleep(2)
        x += 1

    while True:

        if x < 10:
            help()
        elif x < 20 and x > 10:
            doStuff()
        else:
            break

except KeyboardInterrupt:
    exit()
EN

回答 1

Stack Overflow用户

发布于 2018-09-21 05:09:38

问题就是错误消息所说的.一旦你知道如何解释这些单词。

代码语言:javascript
复制
def help():

    print("Help.")
    time.sleep(2)
    x += 1

您正在尝试更改变量x。这要求x必须已经有一个值。但是,除非您声明要引用函数外部的变量,否则不能更改全局变量。因此,Python期望您有一个本地变量x --但您并没有这样做。只需根据需要声明变量:

代码语言:javascript
复制
def help():
    global x

    print("Help.")
    time.sleep(2)
    x += 1

现在,您的程序将打印Help. 10次,然后退出。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52433274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档