【问题标题】:Able to access variable inside one if-statement but not other能够访问一个 if 语句中的变量,但不能访问其他
【发布时间】:2020-05-13 12:34:57
【问题描述】:

这是我的代码中的一个 sn-p,奇怪的是为什么我能够在第 3 个 if 语句中访问名为“calBegPoint”的变量,但不能在第二个语句中访问。

if graph != None:
                for trace in graph['data']:
                        if 'LSR(' in trace['name']:
                                calBegPoint = trace['x'][0]      #Statement 1
                        if '% change' in trace['name']:
                                print(calBegPoint)       #Statement 2
                        if 'LSR Extended' in trace['name']:
                                print(calBegPoint)        #Statement 3

当我运行此代码时,我在语句 2 上收到以下错误,但如果我评论它,我不会收到语句 3 的错误。为了解决这个问题,我尝试在整个 sn 之前声明 calBegPoint= "Hi" -p。这样我没有得到错误,但是 Statement 2 上打印的值是“Hi”,而不是我计算的值。

我已经尝试调试它几个小时了。任何方向/指针将不胜感激

UnboundLocalError: local variable 'calBegPoint' referenced before assignment

【问题讨论】:

  • 尝试推断当graph['data'] 的第一个元素第一个if 语句没有触发,但第二个或第三个语句没有触发时会发生什么。
  • @timgeb:你是个天才!!!非常感谢您的帮助!你可以把它放在答案中,我会接受的。这就是我所需要的。 :)

标签: python-3.x if-statement


【解决方案1】:

错误消息试图告诉您在定义之前使用calBegPoint

在您的情况下,第二个或第三个if 语句的第一次执行位于第一个if 语句的第一次执行之前。

【讨论】:

    猜你喜欢
    • 2015-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多