首页 > 解决方案 > 从文本文件中读取随机行 - python

问题描述

我一直在尝试在 python 中进行理论测试,我希望代码从我创建的文件中随机抽取一个问题并询问用户答案。

我制作了两个文件,一个包含问题,另一个包含答案。

value = 0

q1 = open('questions.txt','r')
q1_question = q1.readlines()[0]
print(q1_question)

a1 = open('answers.txt','r')
a1_answer = a1.readlines()[0]
answer1 = input("Enter your answer: ").lower()

if answer1 != a1_answer:
    value = value + 1

值是错误答案,现在,这只是第一个问题,我的目标是用户得到一个随机问题并且需要输入正确答案,最后将显示用户他得到了多少问题错误的。

答案.文本: b

问题.文本: 司机停车后应该怎么做?| A) 打开所有的信号灯。B) 确保车辆保持不动且不能移动。C) 放置一个警告三角形。按要求系好安全带:| A) 使驾驶员保持直立坐姿。B) 减少事故中的伤害程度。C) 使驾驶员保持警觉。是否允许在发动机运转时为车辆加油?A) 绝对不是。B) 是的,在自行加油的情况下。C) 是的,当车辆靠近灭火站时。禁止在人行横道上或之前在以下距离内停车、停放或站立车辆:| A) 距离十字路口 20 米。B) 距离十字路口 12 米。C) 距离十字路口 24 米。大雾期间哪些驾驶员相关能力受损?愿景。B) 车辆加速。C) 转向。私家车可以载客出租吗?| A) 仅在公共交通罢工期间。B) 没有。 C) 仅在城际游乐设施中。

标签: pythonfile

解决方案


如果没有您的 questions.txt 或 answers.txt 的示例,很难回答这个问题,但根据您发布的内容,如果保证提到的两个文件具有相同的行数并且每一行都是一个问题/答案 -以下已更新为不再重复问题:

import random

def unasked_question_number(q_dic, upper_limit):
    qn = random.randint(1, upper_limit) - 1
    while (q_dic.get(qn) is not None):
        qn = random.randint(1, upper_limit) - 1
    q_dic[qn] = True
    return qn
    
value = 0
questions_asked = {}

q_file = open('questions.txt','r')
questions = q_file.readlines()
a_file = open('answers.txt','r')
answers = a_file.readlines()
q_file.close()
a_file.close()

number_of_questions = len(questions)
question_number = unasked_question_number(questions_asked, number_of_questions)

print(questions[question_number])
answer = input("Enter your answer: ").lower()

if answer != answers[question_number]:
    value = value + 1

推荐阅读