2015-12-04 33 views
-4

我試圖編寫一個程序,該程序需要一個包含單詞列表的文件,並且用戶必須輸入文件中存在的單詞。你能告訴我哪裏錯了嗎?檢查文件中是否存在單詞

file = open('filename') 
word_list = file.readlines() 
print(word_list) 
while True: 
    word = input('type in word, must be in English and at least 3 letters long: ') 
    if word in word_list: 
     break; 
    else: 
     print("Try Again") 
+2

你應該告訴_us_什麼是錯的,提供樣品的輸入和輸出。無論如何,'word_list'包含文件中的每個_line_,而不是每個_word_。 – Arc676

+0

提示:爲什麼[「a b」,「c d」]中的「c」評估爲False?爲什麼[「a \ n」,「b \ n」,「c」]中的「b」評估爲False? – Kevin

+0

'word_list = file.read()。split()'? – GingerPlusPlus

回答

-1

試試這個:

file = open('filename', 'r') 
word_list = [] 
for line in file: 
    line = line.strip() 
    list = line.split() 
    word_list.extend(list) 

word_list = list(set(word_list)) # Make list with unique values. 
while True: 
    word = input('type in word, must be in English and at least 3 letters long: ') 
    if word in word_list: 
     break 
    else: 
     print("Try Again") 
file.close() 
+0

>你能告訴我哪裏錯了嗎? – vaultah

+1

@vaultah,問題是在發佈的代碼中,file.readlines()會生成以'\ n'結尾的字符串列表。正如@Kevin在上面所暗示的,這會導致你的比較失敗,因爲['a \ n','b \ n']'中的'a'將評估爲false。 – JCVanHamme

+0

@JCVanHamme:是的。 Kamejoin決定在他們的回答中不包括解釋。 – vaultah