口算题生成器哪个好 自动生成计算题的小程序( 二 )


我们把回答不对的口算题记录在一个列表变量里 。做完后只是把这种变量里的记录消息输出去查看 – 完成要求3的功能:
# 打印口算结果
def printErrors(errors):
if len(errors) > 0:
print("口算错误的题目:")
for error in errors:
a, op, b, result, yourInput = error
if op == 1:
tip = str(a) + ' + ' + str(b) + ' = ' + str(result) + ", 你的错误答案:" + str(yourInput)
else:
tip = str(a) + ' - ' + str(b) + ' = ' + str(result) + ", 你的错误答案:" + str(yourInput)
print(tip)
else:
print("恭喜你全部答对!")
应该观看到的 。这种函数末尾没有return语句 – 我们不期望从它获取什么返回资料 。让它把消息直接输出在屏幕上给我们观看到的就可 。
到此我们把要求的3个功能都做完了 。离可用起来还差一点:还一定把它们团队坚持到文件里 。并在文件的执行入口里调用(还记得 自学Python进阶-把代码变成程序 。应用 说明的地方么?) 。
下面是代码完美地放到文件里的样子:#!/usr/bin/env python3
import time# 这行代码让我们能够使用python基础库的time库里函数
import random # 这行代码让我们能够使用python生成随机数的函数
# 随机生成一个口算题及其正确结果的函数
def genOneExercise():
opt = random.randint(0, 1) # 在0和1中随机取一个值
if opt == 1: # 如果随机获取的是 1 。我们就生成加法口算题
a = random.randint(1, 99)# 小心这里是 99
b = random.randint(1, 100-a) # 这是保证百以内加法的地方
result = a + b
return a, opt, b, result
else:# 如果随机获取的是 0 。我们就生成减法口算题
a = random.randint(1, 100)
b = random.randint(1, 100)
if a > b:
result = a - b
return a, opt, b, result
else:
result = b - a # 这里是避免出现减数不够的地方
return b, opt, a, result
# 做口算健身 。做的题目个数通过函数参数指定
def doExercises(times):
random.seed(time.time()) # 为了保障随机效果 。每次运行时给随机系统一个变化的种子
errorList = []
i = 0
while i < times:
x, op, y, res = genOneExercise()
if op == 1:
tip = str(x) + ' + ' + str(y) + ' = '
else:
tip = str(x) + ' - ' + str(y) + ' = '
ret = int(input(tip)) # 小心把输入的字符串类别转换成数学计算的整型
if ret != res:# 只有口算结果错了时才记录
record = (x, op, y, res, ret) # 把一次口算错误的消息团队成一个元组
errorList.append( record )i = i + 1
return errorList
# 打印口算结果
def printErrors(errors):
if len(errors) > 0:
print("口算错误的题目:")
for error in errors:
a, op, b, result, yourInput = error
if op == 1:
tip = str(a) + ' + ' + str(b) + ' = ' + str(result) + ", 你的错误答案:" + str(yourInput)
else:
tip = str(a) + ' - ' + str(b) + ' = ' + str(result) + ", 你的错误答案:" + str(yourInput)
print(tip)
else:
print("恭喜你全部答对!")
# 本文件执行时的入口 - 运行时从这里开始
if __name__ == '__main__':
errors = doExercises(10)# 来 10个 口算题练练吧 ??
printErrors(errors)# 跟你说我口算结果怎么样...
【口算题生成器哪个好 自动生成计算题的小程序】试试把它用起来 。你会接触什么问题么?欢迎留言 。下次一起来解决你的问题 。完善我们的口算出题器 。

推荐阅读