Trivia Program:从文件和用户输入中读取

时间:2017-06-13 21:05:36

标签: python

我在这个琐事计划中遇到了麻烦。我必须能够使用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!')

1 个答案:

答案 0 :(得分: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!')