0

だから私はクイズpythonプログラムをやっていますが、私のプログラムに問題があるようです。最初にクイズを開始したい場合は、通常のクイズと同じようにクイズが開始され、問題が印刷されます。正しい質問に答えると、ポイントが与えられます。しかし、クイズが終わってもう一度クイズをやりたいと思ったとき、そこから問題が始まり、クイズを始めたいときに問題が印刷されません

while True:
    print('1. Take test, 2. Add Question, 3. Modify, 4. Delete, 5. Exit')
    n=input('Choice: ')
    counter=0
    lines=q.readlines()
    liness=p.read()
    key=liness.split('\n')
    while n not in ('1','2','3','4','5'):
        print('Invalid Choice')
        n=input('Choice: ')

    if n=='1':            
        score=0
        counter=0
        n=0
        nb=0

        while True:
            linez=lines[n:n+5]
            for line in linez:
                print(line)
            b=CheckAnswer()
            if b==key[nb]:
                score=score+1
                print('Nice')
            n=n+6
            nb=nb+1
            counter=counter+1
            print('Current Score: ',score)
            if counter>=len(key):
                break

誰でもこの問題を解決するのを手伝ってもらえますか?

4

1 に答える 1

1

これらの行を実行した後:

lines=q.readlines()
liness=p.read()

ファイル ポインタ p および q は、ファイルの末尾を指しています。readlines次のandへの呼び出しreadは、ファイルの末尾から開始されるため、空の応答が返されます...

q.tell()ファイル内の実際の位置を確認するために使用できq.seek(0)、ポインターをファイルの先頭にリセットします...

この特定のケースでは、ファイルから読み取った後に次の行を追加すると、問題が解決します。

q.seek(0)
p.seek(0)
于 2012-11-17T08:21:51.610 に答える