python-3.x - 能够访问一个 if 语句中的变量,但不能访问其他语句

标签 python-3.x if-statement

这是我的代码片段,奇怪的是为什么我能够访问第三个 if 语句中名为“calBegPoint”的变量,但不能访问第二个 if 语句。

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 的错误。为了解决这个问题,我尝试声明 calBegPoint= "Hi " 在整个代码片段之前。这样我就没有收到错误,但是语句 2 上打印的值是“Hi”,而不是我计算的值。

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

UnboundLocalError: local variable 'calBegPoint' referenced before assignment

最佳答案

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

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

关于python-3.x - 能够访问一个 if 语句中的变量,但不能访问其他语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61774828/

相关文章:

python - 只读取大型 JSON 中的特定字段并导入 Pandas Dataframe

python - 如何检查用户是否已经通过某种方法

python - 从当前工作目录开始获取类的文件路径

python - 在 Windows 10 上无法识别 Conda 命令

java - 为什么这个循环总是返回 false?

vb.net - 循环中 If 语句的优化

ios - 如何确定图像是从库中还是从相机中获取的

javascript - 如果否则与 && ||

python-3.x - Tensorflow,使用经过训练的网络进行预测

r - 多个 R 函数上带有 if 条件的 For 循环