2017-06-13 7 views
-4

私はこのトリビアプログラムに問題があります。 whileループを使ってテキストファイルから質問と回答を読むことができなければなりません。私は、その答えが何であるかをユーザーに尋ね、正しいかどうかを彼らに伝えなければなりません。それから、どれくらいの答えが正しいかを彼らに伝えなければなりません。最後に、もう一度実行するかどうか尋ねる必要があります。トリビアプログラム:ファイルとユーザーの入力から読む

私の問題は、私がテキストファイルの20番目の質問を過ぎて実行するwhileループを実行するときです。あなたが私を助けることができれば、私のコードは以下のとおりです。

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

こんにちは、私はそれを知っていますが、投稿するときにどのようにインデントするかわかりませんでした。私のコードは、インデントを持っています。 – Nada

+0

それをコピーして貼り付けると、インデントを維持する必要があります... – Alfabravo

答えて

1

あなたのコードはインデントされて固定されており、少しハウスキーピングしています。

ファイルポインタとの文字列比較を実行しないでください。 2か所で起きていた。 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!') 
関連する問題