摘要:本文旨在说明Python编程在小学数学教学过程中的应用。通过6个案例,由浅入深地展示了Python在编题、解题、画图表、成绩分析中的强大功能,有效的提高了教学中的工作效率。
倡导小学教育工作者学习并使用Python,让教学工作更加如鱼得水。
关键词:Python,小学,数学
正文:比尔·盖茨说过:“每个人都应该学一点编程”。其实,在科技飞速发展的今天,编程已经不再是只有专业程序员才能使用的工具了。十年前会用Word、Excel就能满足大量工作需要了,二十年前会用电脑打字就很厉害了,三十年前会用锄头大概也可以解决温饱。如今只会这些显然远远不够,我们需要掌握更多有效工具。作为一个普通人,尤其是一名数学老师,要是也能掌握一点编程知识,将会让工作变得快捷而高效。
换做以前,C语言太难了,Java环境不好搭建,还可以说时机未到,如今Python的出现可以说是普通人学习编程的最佳时机了。第一,安装便捷,默认下一步到底就可以直接使用自带的IDLE写代码了;第二,语言精练。举个简单的例子:求1+2+3+4+……+99+100的和。写成代码只要四行,如下:
sn=0for an in range(1,101):sn+=iprint(sn)
第三,支持大量外部库,例如,创建文本,画图,打开Excel表格等,在数学教学过程中,用来编题、画图表、成绩分析等都非常实用。具体事例见下文。
下面,我将通过实际案例从编题、解题、画图表、成绩分析四个方面阐述Python在小学数学教学中的应用。
一、编题
小学数学,“得计算者得天下”已是不争的事实,所以数学老师要面临大量的编写计算题的工作,通常都是这里抄一下,哪里改一下。而使用Python,事情就变得很简单多了。
案例1. 编写100以内的加减乘除
编写思路:①使用random产生随机数;②使用choice方法随机选择“+、-、×、÷”符号;③使用while循环执行30次。
代码如下:
#导入库import randomfrom random import choice #设置循环i = 1while i < 30: a = random.randint(1, 100) # 产生随机数a b = random.randint(1, 100) # 产生随机数b # 随机选择加减乘除号 fh = ["+", "-","×","÷"] D = choice(fh) #如果减数大于被减数或除数大于被除数,则不输出 if aand (D== continue #打印算式 print(str(a) + D + str(b) + "=") i += 1
注:如果要产生其他区间的数,则改变randint中的区间;如果要减少运算符号,则改变fh列表中的元素;如果要输出更多,则改变while循环的次数。
案例2. 编写分数计算
编写思路:分数计算题用Word来编写简直太低效,而Python命令行不支持分数,所以考虑使用标记语言Markdown来输出,即生成“.md”文件并使用Typora打开。
代码如下:
#导入库import random #定义分数函数def fenshu(a,b): fenshu=r'\frac{'+str(a)+'}{'+str(b)+'}' return fenshu #自定义文件名称path=input("输入路径名称(如:text.md):")f = open(path, 'w') #设置循环i = 1while i < 30: a = random.randint(1,100) # 产生随机数 b = random.randint(1,100) # 产生随机数 c = random.randint(1,100) # 产生随机数 d = random.randint(1,100) # 产生随机数 #公式头 up = '$' f.write(up) #分数算式 gongshi = fenshu(a, b) + "+" + fenshu(c, d) + "=" f.write(gongshi) #公式尾 down = '$\n' f.write(down) i += 1f.writelines("\n")f.close()
注:生成的.md文件需要使用Typora软件打开,请提前安装好;支持导出图片、PDF,以及Word再进行编辑。
二、 解题
虽然用编程来解决数学计算有点投机取巧了,但是多掌握一种方法本身并没有什么问题,就好比不让学生使用计算器,但还是要教会学生使用计算器甚至珠算一样。换一个角度来讲,使用编程计算出结果,可以快捷地检测我们通过数学计算的结果正确与否。
案例3:计算1^2+3^2+5^2+……+97^2+99^2
编写思路:使用range方法产生1到99所有奇数;使用for循环将所有奇数的平方相加。
代码如下:
sn=0for an in range(1,100,2): sn += i**2print(sn)
案例4:是否存在非零自然数a,b,c 三个数满足a2+b2,b2+c2,c2