上周五利用午休 给班级里的孩子做了Python代码生成的‘’加减法列示计算题‘’(加减法都要有,空白位置在不同的地方。)
从对作业的分析来看,全部孩子都已有列示计算的经验,但是这种题型多,位置不固定的题目让很多孩子出现加减法混同的情况——填写的答案与已有2个数字有关联(加或减),但不理解不同位置带来的加减转换思路。(教学过程不能展示)
加减计算题一般是小学后的学习重点,所以大班孩子们不会做、做错很正常。因此第一次的实验的目的是让孩子懂得作业纸上要先写名字、学号、班级,并观察幼儿数字书写的能力(镜像字)、当然也能够掌握每位孩子通过家庭训练,现有 的加减法能力。
思来想去,什么样的数学题目是大班教材允许进行操作的?
那就是“数字分合”
大班孩子可以进行数字分合的游戏,通过修改已有的一个代码,几经调试,终于制作出了一个可以生成txt格式的数字分合模板的代码。
# !/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hiuhung Wan
import random
def add_test(sum_value, count):
'''
返回指定个数(count)的计算题,以计算某数(sum_value)以内的加法
:param sum_value: 指定某数以内(的加法)
:param count: 随机生成多少题
:return: 返回count个计算题
'''
questions = ''
count_temp = 0 # 计数器
# 求列试题的第2个数字b
while True:
a = random.randrange(0, sum_value+1) # 第2个数a 如果是5以内计算题,随机生成0.1.2.3.4.5 实际就是5以内
c = random.randrange(0, sum_value+1) # 第3个数(答案数)c 随机生成 0.1.2.3.4.5
if c-a>=0: # 第2个数字b(答案数)等于第3个数c(答案数)减去第1个数字a.所以b=c-a b的范围是大于等于0
str_temp = ' '+str(c)+'\n' + ' / ' + ' \ '+'\n'+'( ) ' + str(a)+'\n'+'\n'
questions += str_temp
count_temp += 1
if count_temp >= count:
break
return questions
def main():
# sum_value, count = 5, 448 # 随机出448题(正好14页32题28份每份16题),5以内的分合(大班幼儿常用)
sum_value, count = 10, 560 # 随机出560题(正好14页40题28份每份20题),10以内的分合(大班幼儿常用)
# sum_value, count = 20, 160 # 随机出600题(正好4页40题10份20题),20以内的分合(个别幼儿挑战,不要打印太多)
# sum_value, count = 50, 96 # 随机出600题(正好3页32题6份16题),50以内的分合(个别幼儿挑战,不要打印太多)
# sum_value, count = 100, 64 # 随机出600题(正好2页32题4份16题),100以内的分合(个别幼儿挑战,不要打印太多)
text = ''
q = add_test(sum_value, count)
str_title = '%d以内加法+分合%d题 .txt' % (sum_value, count)
with open(str_title, "w") as f:
f.write(q)
f.close()
if __name__ == '__main__':
main()
重点说明:
一、代码可以生成 5以内、10以内、20以内、50以内、100以内五款分合数字,大班年龄段一般就用到5以内和10以内(运行的时候只能选一条运行,其他都用Ctrl+/转为注释)
二、红框的内容是显示出了‘’分合图形‘的关键’。实际上三行,但是我分段就显示不出来,只能挤在一段里,空格多少都是调试过的,否则TXT转到word里会变形.
三、运行后的效果
1、以运行“5以内数字分合”为例,
2、在D/test下生成一个TXT文件
3。TXT内部分合题
Ctrl+A全选 Ctrl+C复制到word里,下面先设置word打印模板
4。word打印模板设置
边框及主要样式设置
页眉设置
把TXT的分合题拷贝到word里
题目全选,字体、字号、段间距修改
使用时,5以内分合作业纸中间一切二,每次16题
5以内分合A4页存32题,根据人数,确定题目总数,比如我有28个孩子,每个孩子16题,就28
*16=448题)
2、以运行“10以内数字分合”为例,由于10以内有两位数,空格会出现参差,为了格式好看,需要将字体、段落变小,每页就不是32题而是40题(每人20题)。
10以内分合A4页存40题,根据人数,确定题目总数,比如我有28个孩子,每个孩子20题,就28
*20=560题)
这套代码的填空都在第一位,可不可以把空格放在第二位呢?
只要把 红框里的位置改一下就可以了
(1)空格在第一位
(2)空格在第二位
为了方便,数字分合填空在第二位的代码在下面(5以内分合和10以内分合的word模板的字号、间距不同 不要忘记调整)
# !/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Hiuhung Wan
import random
def add_test(sum_value, count):
'''
返回指定个数(count)的计算题,以计算某数(sum_value)以内的加法
:param sum_value: 指定某数以内(的加法)
:param count: 随机生成多少题
:return: 返回count个计算题
'''
questions = ''
count_temp = 0 # 计数器
# 求列试题的第2个数字b
while True:
a = random.randrange(0, sum_value+1) # 第2个数a 如果是5以内计算题,随机生成0.1.2.3.4.5 实际就是5以内
c = random.randrange(0, sum_value+1) # 第3个数(答案数)c 随机生成 0.1.2.3.4.5
if c-a>=0: # 第2个数字b(答案数)等于第3个数c(答案数)减去第1个数字a.所以b=c-a b的范围是大于等于0
str_temp = ' '+str(c)+'\n' + ' / ' + ' \ '+'\n'+str(a)+ ' ( )'+'\n'+'\n'
questions += str_temp
count_temp += 1
if count_temp >= count:
break
return questions
def main():
sum_value, count = 5, 448 # 随机出448题(正好14页32题28份每份16题),5以内的分合(大班幼儿常用)
# sum_value, count = 10, 560 # 随机出560题(正好14页40题28份每份20题),10以内的分合(大班幼儿常用)
# sum_value, count = 20, 160 # 随机出600题(正好4页40题10份20题),20以内的分合(个别幼儿挑战,不要打印太多)
# sum_value, count = 50, 96 # 随机出600题(正好3页32题6份16题),50以内的分合(个别幼儿挑战,不要打印太多)
# sum_value, count = 100, 64 # 随机出600题(正好2页32题4份16题),100以内的分合(个别幼儿挑战,不要打印太多)
text = ''
q = add_test(sum_value, count)
str_title = '%d以内减法-分合%d题 .txt' % (sum_value, count)
with open(str_title, "w") as f:
f.write(q)
f.close()
if __name__ == '__main__':
main()
这是阿夏第5个实际运用到幼儿园教学中的Python自动化案例(教学类-04),希望能通过借鉴、实验、修改,将Python运用到幼儿园办公工作和幼儿教学中,提高工作效率,推动幼儿个性化学习和层次性学习成效。