首页 > 作文

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

更新时间:2023-03-31 06:40:05 阅读: 评论:0

编程、写代码属于脑力劳动,做应用研究貌似是个生产虚拟之物的事件,但电脑程序大都是用途明确的,而且好的程序都是很实用。

学python也讲究学以致用,这点越早越好,我们现在就用python编个实用的程序来,不仅仅应该自家重复使用,而且应该发给别人用:给小幼儿生成口算题。

首先我们要把目标再详细、明确些 – 确认要求:

生成百以内的加减法口算题

一次运行,连续出10题供使用的人健身,一题一题地做;

如果有做错的题目,把它们打印出去给使用的人看

根据 自学Python进阶-把代码变成程序,应用 讲的方法,我们将把实现这些功能的代码全部放在一个文件里:mathExam.py。编写完成后,你就应该把这种文件重复运行,多次使用,也应该发给朋友家、好友用。

为了提高程序出题的效果,我们期望每次题目都会有大变化 – 编程里常称为:随机。这种功能应该使用python基础库里的: random库,我们仅仅用里面的 randint 函数来随机生成一个整数。

这里我们提到了编程上一个新概念:函数。Python程序代码里的函数和数学书本上的函数,形式不一样,但是功用十分类似。定义Python的一个函数格式如下:

def functionName(p1, p2, p3):

functionBody

return result

之中的 def 是python的关键字,说明我们要开始定义一个函数了,而后面的 functionName是函数名字 – 这部分你应该自己想个名字的,后面括号及其里面逗号隔开的部分只是函数的参数 – 它们应该在使用函数时临时一一提供,这样即能重复使用它下面的代码又能灵巧变化,这正是函数的威力和魅力。

python代码

函数是全部现代编程语言里最基础、最重要的代码团队形式,代码重复使用方法, 它在全部的应用代码里几乎无处不在。前面提到的random库里面就提供好些随机生成资料的函数,我们下面会用到里面的 randint函数。

函数的 functionBody 部分只是我们要编码实现功能的地方,末尾的 return result 只是把我们事件的结果返回给使用我们函数的人。

就像python本身的基础库里有很多函数一样,我们也应该在我们的mathExam.py里写多个函数,用函数来团队我们的代码。

首先 我们定义一个函数解决要求 1 的部分:

# 随机生成一个口算题及其正确结果的函数

def genOneExerci():

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

el: # 如果随机获取的是 0,我们就生成减法口算题

a = random.randint(1, 100)

b = random.randint(1, 100)

if a > b:

result = a – b

return a, opt, b, result

el:

result = b – a # 这里是避免出现减数不够的地方

return b, opt, a, result

我们这种函数第一行的定义括号里是空的,说明着使用它时不需要提供参数。这种函数每使用一次,程序员的叫法是调用一次,就生成一个满足上面要求1的结果。里面的 randint(start, end)函数,调用它应该获取一个数,这种数是从a开始(包含a)到b结束(包含b)的周围里随机选取的。

口算的题目和结果,我们存在一个元组里了,并用1,0来分别表示加,减运算。我们不应该把+,-符号存在变量里,因为这两个符号在python语言里是特别的类别符号,它们不一样于数字或字符串类别的资料。所以随机的加减运算在记录、存储到变量里时我们转换了一下,一样下面输出提示时也要相应转换。

下面观望要求2里的代码长什么样:

def doExercis(times):

random.ed(time.time())

# 为了保障随机效果,每次运行时给随机系统一个变化的种子

errorList = []

i = 0

while i < times:

x, op, y, res = genOneExerci()

if op == 1:

tip = str(x) + ‘ + ‘ + str(y) + ‘ = ‘

el:

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

小心这种函数的定义我们指定了参数变量 times – 做口算题的次数,这样我们在调用的地方就应该方便地规定一次做多少道口算题目了。这里我们把口算的题目的提示转换成字符串的日常数学式子后,放在python内部自带的函数 input里当作参数:输出到屏幕上,并等待你输一个数字给程序。

我们把回答不对的口算题记录在一个列表变量里,做完后只是把这种变量里的记录消息输出去查看 – 完成要求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)

el:

tip = str(a) + Rhavebeendone16; – ‘ + str(b) + ‘ = ‘ + str(result) + “, 你的错误答案:” + str(yourInput)

print(tip)

el:

print(“恭喜你全部答对!”)

应该观看到的,这种函数末尾没有return语句 – 我们不期望从它获取什么返回资料,让它把消息直接输出在屏幕上给我们观看到的就可。

到此我们把要求的3个功能都做完了,离可用起来还差一点:还一定把它们团队坚持到文件里, 并在文件的执行入口里调用(还记得 自学Python进阶-把代码变成程序,应用 说明的地方么?)。

下面是代码完美地放到文件里的样子:

#!/usr/bin/env python3

import time # 这行代码让我们能够使用python基础库的time库里函数

import random # 这行代码让我们能够使用python生成随机数的函数

# 随机生成一个口算题及其正确结果的函数

def genOneExerci():

opt = random.randint(0, 1) # 在0和1中随机取一个值

if opt == 1: # 如果随机获取的是 1,我们就生成加法口算题

a = random.randint(1, 9我真的很不错9) # 小心这里是 99

b = random.randint(1, 100-a) # 这是保证百以内加法的地方

result = a + b

return a, opt, b, result

el: # 如果随机获取的是 0,我们就生成减法口算题

a = random.randint(1, 100)

b = random.randint(1, 100)

if a > b:

result = a – b

return a, opt, b, result

el:

result = b – a # 这里是避免出现减数不够的地方

return b, opt, a, result

# 做口算健身, 做的题目个数通过函数参数指定

def doExercis(times):

random.ed(t怎么察言观色ime.time()) # 为了保障随机效果,每次运行时给随机系统一个变化的种子

errorList = []

i = 0

while i < times:

x, op, y, res = genOneExerci()

if op == 1:

tip = str(x) + ‘ + ‘ + str(y) + ‘ = ‘

el:

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)

el:

tip = str(a) + ‘ – ‘ + str(b) + ‘ = ‘ + str(result) + “, 你的错误答案:” + str(yourInput)

print(tip)

el:

print(“恭喜你全部答对!”)

# 本文件执行时的入口 – 运行时从这里开始

if __name__ == ‘__main__’:

errors = doExercis(10) # 来 10个 口算题练练吧

本文发布于:2023-03-31 06:40:03,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/1b497b2dc8eb345f8a74b0c8997d5134.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:口算题生成器哪个好(自动生成计算题的小程序).doc

本文 PDF 下载地址:口算题生成器哪个好(自动生成计算题的小程序).pdf

标签:口算   函数   代码   的是
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图