为什么要为“ If”条件获取NameError?
Subproject zlib.wrap not found in directory tree.
for i in range(int(n)):
for j in range(int(k)):
res = a1[i] + a2[j]
if(res<=num and ((res-num)<(prev-num))):
r1,r2 = a1[i],a2[j]
prev = res
print(r1,r2)
如果我在“ IF”条件中添加“ AND”,则会为在if语句下定义的变量提供NameError。 有人可以帮忙吗?
谢谢。
答案 0 :(得分:3)
这是因为您不能保证if语句将始终为true(这实际上毫无用处)。因此,该变量可能未初始化,在这种情况下,您将无法在if语句之外打印该值。如果要使用它,则有两种选择。 1)使用默认值在if外部初始化变量 2)add and else语句,在这种情况下,您将不得不再次创建变量
选项1)是最常见的
答案 1 :(得分:1)
在两个if语句中,您都设置了变量prev = res,但是在代码的第一个代码段中,您尝试使用prev而不初始化if语句中的prev值。在这种情况下,您会看到以下错误消息:
if(res<=num and ((res-num)<(prev-num))):
NameError:名称'prev'未定义
解决方案:在if语句之前初始化prev的值,以便在if语句中使用“和”。