用python写代码,要求如下:随机生成两个两位数及加减号(要保证减法算式的被减数大于减数),显示题目让学生输入计算结果,判断并显示结果的正确与否(或给予累积得分)。可考虑设置答题结束条件为时间限制(如1分钟内完成)或题目总数限制(如20题),用到def函数也可以是其它条件(自行设置)。
时间: 2023-05-23 14:06:26 浏览: 47
以下是一段实现要求的Python代码:
import random
import time
def generate_question():
# 随机生成两个两位数及加减号
x = random.randint(10, 99)
y = random.randint(10, 99)
operator = random.choice(['+', '-'])
# 保证减法算式的被减数大于减数
if operator == '-':
x, y = max(x, y), min(x, y)
# 构造题目
question = f"{x} {operator} {y} = "
# 返回题目和正确答案
if operator == '+':
answer = x + y
else:
answer = x - y
return question, answer
def start_quiz(num_questions, time_limit):
# 初始化得分和已答题数
score = 0
num_answered = 0
# 开始计时
start_time = time.time()
while num_answered < num_questions and time.time() - start_time < time_limit:
# 生成题目
question, answer = generate_question()
# 显示题目并让学生输入答案
user_answer = input(question)
# 判断答案是否正确并更新得分和已答题数
if user_answer.isdigit() and int(user_answer) == answer:
score += 1
print("回答正确!")
else:
print(f"回答错误。正确答案是{answer}。")
num_answered += 1
# 显示最终得分
print(f"答题结束!你的得分是{score}/{num_questions}。")
# 示例:设置20题总数限制,不限时间
start_quiz(20, float('inf'))