Python 生成随机算术题并测试用户答案
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 在每次循环中都会自增,导致计数错误。
修改后,将 correct_count 的自增放在 check_answer 函数返回 True 时执行,即只有回答正确时才自增。
代码功能:
- 生成随机的加减乘除算术题。
- 测试用户的答案,判断是否正确。
- 对用户输入进行错误处理。
- 统计用户答对的题目数量。
使用说明:
运行代码后,程序会依次出示 5 道算术题,用户需要输入答案。
程序会判断用户答案是否正确,并给出相应的提示。
最后程序会统计用户答对的题目数量。
代码特点:
- 使用
random库生成随机算术题。 - 使用
eval函数计算算术题的答案。 - 使用
try-except语句对用户输入进行错误处理。 - 使用函数封装代码逻辑,提高代码可读性和可维护性。
代码优势:
- 代码简洁易懂,易于理解和修改。
- 代码功能完善,能够满足用户测试算术题的需求。
- 代码包含错误处理,能够提高代码健壮性。
代码不足:
- 代码没有考虑负数的情况。
- 代码没有考虑除数为 0 的情况。
- 代码没有对用户输入进行更严格的验证,例如防止用户输入非数字字符。
未来改进方向:
- 考虑负数的情况。
- 考虑除数为 0 的情况。
- 对用户输入进行更严格的验证。
- 添加更多功能,例如设置难度等级、记录用户得分等。
原文地址: https://www.cveoy.top/t/topic/qCHa 著作权归作者所有。请勿转载和采集!