Python 变量为';没有定义,但它是

Python 变量为';没有定义,但它是,python,csv,Python,Csv,我已经多次看到这个问题,但没有一个可以应用于我的代码,也没有一个对我的代码有意义。所以我很抱歉问这个问题 我已经编写了一个代码,将以前输入的数据写入csv文件。变量的名称称为file,我有许多用于不同输入的变量。但当我尝试关闭csv时,它会出现错误: NameError:未定义名称“文件” 代码如下: if classCode=="1": file=open("class1.csv","w") file.write("name, correct\n" + name + "," + str

我已经多次看到这个问题,但没有一个可以应用于我的代码,也没有一个对我的代码有意义。所以我很抱歉问这个问题

我已经编写了一个代码,将以前输入的数据写入csv文件。变量的名称称为file,我有许多用于不同输入的变量。但当我尝试关闭csv时,它会出现错误: NameError:未定义名称“文件”

代码如下:

if classCode=="1":
  file=open("class1.csv","w")
  file.write("name, correct\n" + name + "," + str(correct) + "\n")

elif classCode=="2":
  file=open("class2.csv","w")
  file.write("name, correct\n" + name + "," + str(correct) + "\n")

elif classCode=="3":
  file=open("class3.csv","w")
  file.write("name, correct\n" + name + "," + str(correct) + "\n")

file.close()

我不知道为什么它说“文件”没有定义,而我清楚地为所有三个定义了。我只是愚蠢吗?

如果类代码不是1、2或3,会发生什么。如果所有类代码都执行相同的操作,则可以使文件名动态化,而不是多次重复代码

class_file=open("class{}.csv".format(classCode),"w")
class_file.write("name, correct\n" + name + "," + str(correct) + "\n")
class_file.close()

文件变量将仅在类代码为“1”、“2”或“3”时声明,否则它将不会声明,并且会出现错误


您应该确保控件转到任何if语句,或者应该在if语句之外声明此变量。

如果类代码不是“1”、“2”或“3”怎么办?您不应该使用
文件作为变量名@Stephernauch
file
实际上不再在Python3的列表中,因为没有
file
类型。如果类代码不是1、2或3,它会说它不是类。我在课程开始时就有这个部分,我没有把它放在问题中,因为它工作得很完美。