Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 琐事程序:从文件读取和用户输入_Python - Fatal编程技术网

Python 琐事程序:从文件读取和用户输入

Python 琐事程序:从文件读取和用户输入,python,Python,我在这个琐事程序上遇到了麻烦。我必须能够通过while循环阅读文本文件中的问题和答案。然后我必须问用户答案是什么,并告诉他们答案是否正确。然后我必须告诉他们有多少答案是正确的。最后,我必须问他们是否希望再次运行 我的问题是,当我运行while循环时,它会超过文本文件中的第20个问题。我的代码如下,如果你能帮助我,那将是伟大的 print('Welcome to The Computer Trivia Program!') F=open('Culminating Project Trivia Qu

我在这个琐事程序上遇到了麻烦。我必须能够通过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!')

这是您的代码缩进和修复,并做了一些整理

不要使用文件指针执行字符串比较。发生在两个地方。您必须调用
F.readline()
,并确定这是否是
'

您不需要使用条件指定
elif
否则就足够了

此外,一些
readline
print
语句可以折叠,但我不打算折叠它们

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!')

您的代码没有正确缩进。这样,它就不会像预期的那样运行了。嗨,是的,我知道,但我不知道在发布它时如何缩进。我在python中的代码确实有缩进。@Nada是的,因为
F
是一个文件指针,并且永远不会等于
'
@l3via,因此我们通常不会对python问题进行编辑以修复缩进,因为这可能会意外地纠正OP的问题。相反,我们试图让OP自己修复它。OTOH,如果OP认为您的编辑更改了他们的代码,我想他们可以随时修改或还原代码@L3viathan我当然同意问题代码需要缩进,但它应该按照OP机器上的方式缩进,而不是我们认为应该缩进的方式。我们可以假设,
如果…elif
东西在OP的真实代码中正确缩进,但是如果OP没有进一步的证据,我们不能确定这一点。