python - 从文本文件中读取随机行 - 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) 仅在城际游乐设施中。
解决方案
如果没有您的 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
推荐阅读
- c++ - C++意外调用继承类的函数
- python - run_algorithm() 失败,因为它无法从 Internet 源获取数据(403 Forbidden)
- tinymce - 所见即所得编辑器不会在 Chrome 中激活
- r - 如何使用 ggplot2 用多边形列表绘制我的形状?
- javascript - 如何检查数组中的对象是否有空字符串?
- c - 如何修复由-Wconversion引起的错误?
- html - 如何修改我的 css 或 cshtml 以获得类似于 w3school 上的下拉导航栏?
- python - Python代码在程序/代码的开头跳回?
- firebase - 我将如何每周运行一次 javascript 代码?
- gtfs - 什么信息来源是交通 Web 应用程序的行业标准 - GTFS 与 Trapeze 数据文件