【发布时间】:2020-06-22 16:50:56
【问题描述】:
这里是编程初学者
我正在尝试在“Di =”方程中使用的函数中提取 for 循环的变量,如下所示:
def fun1():
global de, ep
with open("Di_Tub.csv", "r") as f3:
reader3 = csv.reader(f3, delimiter=';')
i3 = 0
for row3 in reader3:
i3 = i3 + 1
if i3 >= 1:
if row3[0] == DN:
if row3[1] == SCH:
de = float(row3[2])
ep = float(row3[3])
f3.close()
fun1()
Di = (de - 2*ep)/1000
我得到的是这个错误:
Di = (de - 2*ep)/1000
NameError: name 'de' is not defined
我做错了什么?
【问题讨论】:
-
尝试放置:
global de = float(row3[2])和global ep = float(row3[3]) -
关于这段代码的一些问题:你为什么需要 fun1()?函数不返回任何内容,如果您需要变量值,则编写没有函数的简单循环。最重要的是:为什么需要 i3?什么是DN和SCH?如果使用上下文管理器(with),则不需要关闭文件
-
你好艾瓦。如前所述,我是编程的初学者。这只是整个代码的一部分。 DN 和 SCH 是先前定义的变量。因为我还有其他 2 个 for 循环,所以我决定在这里将计数器命名为 i3。关于 fun1(),我想尝试一个新的东西,而不是仅仅编写 for 循环,这不起作用。