我的名字是Seix_Seix,我對我正在構建的Python程序有疑問。Python將輸入與文件中的行進行比較?
事情是,我正在做一個「謎題遊戲」(愚蠢,對吧?),練習一些基本的Python技巧。程序的預期流程是你給它一個從1到5的數字,然後打開一個文件,其中存儲了所有的謎語,並將它打印在你給出的數字的行中。 之後,它會要求你輸入,在其中鍵入答案,然後(這是所有土崩瓦解下)它你的答案上比較相應線路的另一文件(這裏所有的答案都)。
下面是代碼,所以你可以給它一個看看*(這是在西班牙,因爲它是我的母語,但它也有在註釋的翻譯和解釋)
# -*- coding: cp1252 -*-
f = open ("C:\Users\Public\oo.txt", "r") #This is where all the riddles are stored, each one in a separate line
g = open ("C:\Users\Public\ee.txt", "r") #This is where the answers to the riddles are, each one in the same line as its riddle
ques=f.readlines()
ans=g.readlines()
print "¡Juguemos a las adivinanzas!" #"Lets play a riddle game!"
guess = int(raw_input("Escoge un número entre 1 y 5. O puedes tirar los dados(0) ")) #"Choose a number from 1 to 5, or you can roll the dice (0)" #This is the numerical input, in which you choose the riddle
if guess==0:
import random
raw_input(random.randrange(1, 5))
print (ques[guess-1]) #Here, it prints the line corresponding to the number you gave, minus 1 (because the first line is 0, the second one is 1 and so on)
a=input("¿Sabes qué es?") #"Do you know the answer?" #Here, you are supposed to type the answer to the riddle.
while True:
if a==(ans[guess-1]): #And here, it is supposed to compare the answer you gave with the corresponding line on the answer file (ee.txt).
print "ok" #If you are correct it congratulates you, and breaks the loop.
break
else:
print "no" #If you are wrong, it repeats its question over and over again
所以,我跑該程序。一切都很好,直到我不得不輸入答案爲止;在那裏,不管我說,即使它是正確的還是錯誤的,它給了我一個錯誤:
Traceback (most recent call last):
File "C:\Users\[User]\Desktop\lol.py", line 16, in <module>
a=input("¿Sabes qué es?") #"Do you know the answer?" #Here, you are supposed to type the answer to the riddle.
File "<string>", line 1, in <module>
NameError: name 'aguacate' is not defined #It is the correct answer BTW
我知道當它開始比較回答了這個問題會產生,我也知道這可能是因爲我寫錯了... Sooo,關於如何做到這一點的任何建議是正確的?
預先感謝
親愛的母親......它實際上工作!我真的覺得,**現在真的**啞......¬¬ 但是,雖然嚴重,但非常感謝** **非常**。 對於骰子的一部分,我很專注於解決比較問題,我完全忘了它... 哦!還有一件事...你可以給我一些關於代碼的意見嗎?我在這裏是一個完整的n00b,所以我可以使用我可以得到的所有反饋... 再次感謝, Seix_Seix –
@Seix_Seix:好的,我編輯了我的答案。我希望你會像我一樣享受StackOverflow。您可能還需要花一點時間閱讀[FAQ](http://stackoverflow.com/faq),這將有助於您更好地開始工作(沒有任何惱人的老態偶的風險):) –
+1,患者和完整答案。 – nneonneo