import random

def generate_question():
    operators = ['+', '-', '*', '/']
    operator = random.choice(operators)
    if operator == '/':
        # 生成除法题目时,确保结果是整数
        num1 = random.randint(1, 10)
        num2 = random.randint(1, 10)
        num2_factors = [i for i in range(1, num2+1) if num2 % i == 0]
        num2 = random.choice(num2_factors)
        num1 = num2 * random.randint(1, 10)
    else:
        num1 = random.randint(1, 100)
        num2 = random.randint(1, 100)
    question = f'{num1} {operator} {num2}'
    return question, eval(question)

def check_answer(question, answer):
    user_answer = input(question + ' = ')
    try:
        user_answer = float(user_answer)
        if user_answer == answer:
            print('回答正确!')
            return True
        else:
            print('回答错误!')
            return False
    except:
        print('请输入一个有效的数字!')
        return False

def main():
    num_questions = 5
    correct_count = 0
    for _ in range(num_questions):
        question, answer = generate_question()
        if check_answer(question, answer):
            correct_count += 1
    print(f'您答对了{correct_count}道题目!')

if __name__ == '__main__':
    main()

在原代码中,变量correct_count在每次循环中都会自增,导致计数错误。我已经将其修改为在回答正确时才自增。现在代码可以正确地统计出用户答对的题目数量。

代码功能:

  1. 生成随机算术题: 程序会随机生成加减乘除四则运算的题目,确保除法运算的结果是整数。
  2. 检查答案: 程序会根据用户的输入判断答案是否正确,并给出相应的提示。
  3. 统计答题情况: 程序会统计用户答对的题目数量,并在最后显示结果。

使用方法:

  1. 将代码保存为.py文件。
  2. 在命令行中运行该文件。
  3. 程序会依次生成随机算术题,并要求你输入答案。
  4. 程序会检查你的答案,并给出正确或错误的提示。
  5. 程序结束后会显示你答对的题目数量。

代码优化:

  1. 使用f字符串来格式化字符串,使代码更加简洁。
  2. 使用try-except语句来处理用户输入的错误,提高程序的鲁棒性。
  3. 使用return语句来简化check_answer函数的逻辑。

代码改进:

  1. 可以增加难度选项,例如设置运算数的范围、运算符的种类等。
  2. 可以记录用户答错的题目,并提供复习功能。
  3. 可以使用图形界面来增强用户体验。

原文地址: https://www.cveoy.top/t/topic/qCG6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录