2015-12-22 92 views
-2
file.write(newrecord) 

NameError:名字“文件”是没有定义NameError:名字“文件”是没有定义

这是我得到一个错误。

classa = int(input("What class are you in?")) 
if classa == "1": 
    file=open("class 4.csv", "a+") 
file.write(newrecord) 

文件明确定义,我不知道为什么我收到此错误。

+1

如果classa不是“1”,会发生什么情况? – Alp

+0

@Alp我为此做了代码,但如果我为classa输入1,则会出现错误。 –

+0

检查您的缩进。 – user2357112

回答

2

您的缩进已关闭。 Python基于缩进处理块。另外,正如@davidism在上面的评论中指出的那样,你正试图将一个int与一个字符串进行比较。

试试这个:

classa = int(input("What class are you in?")) 
if classa == 1: 
    myfile=open("class 4.csv", "a+") 
    myfile.write(newrecord) 

假设newrecord在代码中定义超过这个地方。

再次编辑代码以满足克莱顿的评论。 file是Python v2.2 - v2.7中的构造函数。

+0

这是问题的一半,另一半是@davidism发布的内容:'input'被转换为'int',然后与'str'相比较,所以即使用户输入'1',测试_never_也会通过, 。 – ShadowRanger

+0

@ShadowRanger看到 - 我给了大卫+1评论。 –

+0

我只是建议你把它放到你的答案中,这样就完成了;我不喜欢仅仅解决问题的单方面问题(当然整个问题可以解决;这里发布的一些问题只是一堆可怕的问题)。 – ShadowRanger

相关问题