2015-12-22 135 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

相關問題