编写一个练习计算的小程序,要求: 编写加减乘除4个自定义函数add,sub,mul,div,在主函数中调用这4个函数去完成以下功能: (1)随机生成5道四则运算题,题目的类型自加,减,乘,除中任意混合出题(即5道题目中有各种类型的题目),每个题目的2个整数是20以内的随机数,题目显示在屏幕上,由用户输入答案(如下图所示)。 (2)程序判断用户输入的答案是否正确,统计答题的正确率。运行结束时,询问是否继续练习,如果回答“Y”则继续进行练习,如果回答“N”则退出练习。
时间: 2024-03-05 14:52:01 浏览: 247
好的,以下是一个Python的代码实现,希望能够帮到您:
```python
import random
def add(x, y):
return x + y
def sub(x, y):
return x - y
def mul(x, y):
return x * y
def div(x, y):
return x / y
operators = ['+', '-', '*', '/']
correct_answers = 0
total_questions = 0
while True:
print('==========')
for i in range(5):
op = random.choice(operators)
if op == '+':
x = random.randint(0, 20)
y = random.randint(0, 20)
ans = add(x, y)
elif op == '-':
x = random.randint(0, 20)
y = random.randint(0, 20)
ans = sub(x, y)
elif op == '*':
x = random.randint(0, 20)
y = random.randint(0, 20)
ans = mul(x, y)
elif op == '/':
y = random.randint(1, 20)
x = y * random.randint(1, 20)
ans = div(x, y)
print(f'{i+1}. {x} {op} {y} = ?', end=' ')
user_ans = input()
if float(user_ans) == ans:
correct_answers += 1
total_questions += 1
score = correct_answers / total_questions * 100
print(f'你做对了{correct_answers}道题,得分是{score:.2f}%。')
with open('result.txt', 'a') as f:
f.write(f'你做对了{correct_answers}道题,得分是{score:.2f}%。\n')
ans = input('是否继续练习(Y/N)?')
if ans.lower() == 'n':
break
```
说明:
1. `add`、`sub`、`mul`、`div` 是四个自定义函数,分别用来进行加、减、乘、除运算。
2. `operators` 是一个包含加减乘除运算符的列表,用于随机选择运算符。
3. 在主循环中,每次循环生成一个随机运算符和两个随机数,根据运算符选择对应的函数进行计算,并输出题目,要求用户输入答案。
4. 判断用户输入的答案是否正确,正确则计数器加1。
5. 统计答题正确率,并将每次答题结果和正确率输出到屏幕上和result.txt文件中。
6. 询问用户是否继续练习,如果回答“Y”则继续进行练习,如果回答“N”则退出练习。
希望这个程序能够满足您的需求。
阅读全文