2017-06-13 43 views
-4

我遇到了這個瑣事程序的麻煩。我必須能夠使用while循環從文本文件中讀取問題和答案。然後我必須問用戶答案是什麼,並告訴他們他們是否正確。然後我必須告訴他們他們有多少答案是正確的。最後,我必須問他們是否希望再次運行它。瑣事程序:從文件和用戶輸入中讀取

我的問題是當我運行while循環它運行通過文本文件中的第20個問題。我的代碼如下,如果你能幫助我,這將是偉大的。

print('Welcome to The Computer Trivia Program!') 
F=open('Culminating Project Trivia Questions.txt','r') 

AC=0 
while F!='': 
    Q=F.readline() 
    print(Q) 
    C1=F.readline() 
    print(C1) 
    C2=F.readline() 
    print(C2) 
    C3=F.readline() 
    print(C3) 
    C4=F.readline() 
    print(C4) 
    A=input('Enter an Anwser:') 
    ANS=F.readline() 
    print(ANS) 

    if A==ANS[14]: 
     print('Correct')    
     AC=AC+1   
    elif A!=ANS[14]:    
     print('Incorrect')    
     AC=AC   
    if F=='':    
     break 

F.close() 

print('Your Total Amount of Correct Answers out of 20 is:',AC) 
print('Thankyou for Playing Computer Trivia!') 
+0

您的代碼沒有正確縮進。這樣,它不會按預期運行。 – Alfabravo

+0

嗨,是的,我知道這一點,但我不知道如何在發佈時縮進。我在Python中的代碼確實有縮進。 – Nada

+0

如果你複製並粘貼它,它應該保留縮進... – Alfabravo

回答

1

這是您的代碼縮進和固定,並做了一點家務。

不要使用文件指針執行字符串比較。發生在兩個地方。您必須致電F.readline()並確定是否''

您無需指定elif並附帶條件 - else就足夠了。

此外,這些readlineprint語句中的一些可以被摺疊,但我會留下它們。

print('Welcome to The Computer Trivia Program!') 
F = open('Culminating Project Trivia Questions.txt', 'r') 
AC = 0 
t = F.readline() 
while t: 
    Q = t 
    print(Q) 
    C1=F.readline() 
    print(C1) 
    C2=F.readline() 
    print(C2) 
    C3=F.readline() 
    print(C3) 
    C4=F.readline() 
    print(C4) 
    A=input('Enter an Anwser:') 
    ANS=F.readline() 
    print(ANS) 

    if A == ANS[14]: 
     print('Correct') 
     AC = AC + 1 

    else: 
     print('Incorrect') 

    t = F.readline() 

F.close() 
print('Your Total Amount of Correct Answers out of 20 is:', AC) 
print('Thankyou for Playing Computer Trivia!')