粤高教信息技术八年级下册教学设计
课题
第1课 加法心算游戏
单元
第二单元
学科
信息技术
年级
八年级
学习
目标
了解标准库、扩展库的含义。
掌握import语句导入库或模块的方法。
理解数字类型的输出控制格式。
掌握random模块及time模块中相关函数的使用方法。
变成解决简单的随机问题。
重点
掌握import语句导入库或模块的方法。
难点
掌握random模块及time模块中相关函数的使用方法。
教学过程
教学环节
教师活动
学生活动
设计意图
导入新课
心算训练考科一培养我们的计算技巧,如何能提高心算能力呢?借助计算机游戏来提高心算能力是个好办法。
让我们来编写一个加法心算游戏吧!
交流:
加法心算比赛可以从哪几方面去评判输赢?
在难度相似的情况下随机答题,可以从答题数、正确率来判输赢
了解心算比赛评判。
通过加法心算游戏来引出随机函数。
讲授新课
分析问题
编写一个“加法心算游戏”程序,要求由计算机在限定时间内随机给出若干道两个100以内加数的加法题,比正确率。
需要解决的关键问题是:一是如何实现在限定时间内多次出题、答题;二是如何随机出题。
利用time模块获取时间,用来计算时长,并根据时长确定游戏是否继续。
利用random模块每次生成不同的随机整数作为加数。
学习新知
(一)函数与库
标准库,是指Python语言自带并自动安装的库;扩展库,是指有其他人开发且需要另外安装的库,这些库提供了更丰富和更强大的功能。
(二)random模块
Python标准库中的random模块,它主要用于产生指定范围内的随机数。要使用random模块中的函数先导入该模块,导入命令如下:
import random
导入模块后,要调用模块中的函数,需按如下的格式书写:
模块名.函数(参数)
练习:
例如,调用random模块中的random()和randint()两个函数。
(1)不带参数,用于产生一个在区间[0,1]内的随机浮点数,书写格式如下。
random.random()
(2)用于产生一个在区间[9,20]内的随机整数,书写格式如下:
random.randint(9,20)
实践:
在IDLE交互模式下完成下列操作,理解random()函数及randint()函数的作用。
random()随机生成一个0~1的浮点数;randint()随机生成一个给定区间内的整数
(三)time模块
ime模块包含在标准库中,它主要用于处理日期和时间。导入 time 模块的命令如下:
Import time
time 模块中的函数time()用于获取当前时间戳。要计算前后两个时间点的时长(秒数),只要用前后两次time.time()的值相减即可。
实践:
在IDLE交互模式下,导入time模块,然后多次输入time.time()命令,观察每次的结果有何变化,理解time()的作用。
探究:
1、运行程序time.py,相邻同学对比运行结果,你能从中得出什么结论?
2、请写出语句的执行结果,并在IDLE交互模式下验证。
设计算法
据前面分析,加法心算游戏程序的算法流程如图2-1-2所示。
四、编写程序
根据从上面的算法分析,加法心算游戏程序的代码如下:
实践:完善程序add.py,并运行测试。开展加法心算游戏活动,比谁答对的题目最多、正确率最高。
实践与创作:
修改程序add.py,将原程序修改为两位数的整数口算乘法游戏程序,答题时间由键盘输入,程序保存为mul.py。
参考图2-1-3,设计一个抽奖器,随机抽取一个学号作为幸运之星,程序保存为luck.py。
1、以下哪个函数能生成1~5之间的随机整数?( D )
A、random.random(0,5) B、random.randint(0,5)
C、random.random(1,5)D、random.randint(1,5)
2、以下哪个函数在使用前要先导入所属的模块?( D )
A、input() B、print()
C、int() D、time.time()
3、以下哪些说法是正确的?( C )
A、在Python中,利用库可以让编程者快速实现所需的功能
B、随机数模块random包含在扩展库中
C、标准库和扩展库的模块都需要先导入才能使用D、库中的所有函数在调用时,一定要写参数
请完善程序random.py,求出10个三位随机整数的和。
学生听取教师的讲解,了解计算如何在限定的时间内随机加法题的准确率。
了解函数、库、random模块的使用方法。
通过练习调用random模块中的random()、randint()函数。
了解time模块的使用方式。
自行编写运用time模块编写运行消耗的时间。
学生动手自己设计流程图并编写代码。
学生理解和掌握。
培养学生进行编程的逻辑思维
培养学生的编程思维能力。
了解time模块
通过例题讲解,使学生更容易理解time。
课堂小结
1、利用time模块获取时间,用来计算时长,并根据时长确定游戏是否继续。
2、利用random模块每次生成不同的随机整数作为加数。
3、要使用random模块中的函数先导入该模块,导入命令如下:
import random
4、导入模块后,要调用模块中的函数,需按如下的格式书写:
模块名.函数(参数)
学生回答及进行编写程序
利用问题形式进行总结
板书
一、分析问题
二、设计算法
(一)中位数的算法设计
三、编写程序
(一)列表的创建
(二)中位数的计算
四、调试运行程序
课件40张PPT。 第 1 课 加法心算游戏
——random 与 time 模块的应用广东高等教育出版 第八册下 B版新知导入新知讲解快门乐新知讲解交流 在难度相似的情况下随机答题,可以从答题数、正确率来判输赢新知讲解一、分析问题 本课的任务是编写一个“加法心算游戏”程序,要求由计算机在限定时间内随机给出若干道两个100以内加数的加法题,比正确率。
需要解决的关键问题是:一是如何实现在限定时间内多次出题、答题;二是如何随机出题。新知讲解要解决这两个问题,在程序中需要利用两个模块。新知讲解二、学习新知(一)函数与库新知讲解(二)random模块 import random新知讲解 导入模块后,要调用模块中的函数,需按如下的格式书写:
模块名.函数(参数)新知讲解 例如,调用random模块中的random()和randint()两个函数。新知讲解random.random()random.randint(9,20)新知讲解实践 在IDLE交互模式下完成下列操作,理解random()函数及randint()函数的作用。
random()随机生成一个0~1的浮点数;randint()随机生成一个给定区间内的整数新知讲解>>>import random
>>>random.random()
>>>random.random()
>>>random.random()
>>>random.randint(1,10)
>>>random.randint(15,100)
>>>random.randint(200,300)新知讲解(三)time模块Import time新知讲解 time 模块中的函数time()用于获取当前时间戳。要计算前后两个时间点的时长(秒数),只要用前后两次time.time()的值相减即可。新知讲解实践 在IDLE交互模式下,导入time模块,然后多次输入time.time()命令,观察每次的结果有何变化,理解time()的作用。
新知讲解>>>import time
>>>time.time()
>>>time.time()
>>>time.time() time()用于获取当前时间新知讲解探究 1、运行程序time.py,相邻同学对比运行结果,你能从中得出什么结论?
新知讲解#time.py计算程序运行所消耗的时间
import time
t1=time.time() #把当前时间戳存到t1中
for i in range (100000000):
i=i+1
t2=time.time() #把循环结束后的时间戳存到t2中
#将循环执行时间保留两位小数输出
print(‘循环执行时间:%.2f秒’%(t2-t1))新知讲解 2、请写出语句的执行结果,并在IDLE交互模式下验证。
>>>print(‘体重:%fkg’%50) #默认保留6位小数
结果:_______________________
>>>print(‘圆周率:%.3f’%3.1415) #保留3位小数
结果:________________体重:50.000000kg圆周率:3.142新知讲解 据前面分析,加法心算游戏程序的算法流程如图2-1-2所示。三、设计算法新知讲解将答题数n置初2值0
将答对题数right置初值0
置起始时间及最新时间:t1,t2=time.time()开始导入random、time模板t2num1=random.randint(1,100)
num2=random.randint(1,100)输出答题数量n、正确答题数right及正确率True新知讲解t2=time.time()结束right=right+1ans=num1+num2输入心算答案ans输出加法式子num1+num2=True图2-1-2 加法心算游戏流程图新知讲解 根据从上面的算法分析,加法心算游戏程序的代码如下:四、编写程序#add.py
import random.time #导入random和time模块
n=right=0 #分别给答案总数量n和答对题数变量right赋初值0
t1=t2=time.time() #将当前时间戳作为初值分别赋给开始时间t1和最新时间t2新知讲解while t2 n=n+1 #累计答题数量
num1=_________________________ #产生一个随机整数
num2=random.randint(1,100) #产生第二个随机整数
print(num1,’+’,num2,’=‘,end=“) #输出加法式子,end=“表示输出后不换行
ans=int(input()) #输入心算答案random.randint(1,100)
新知讲解if ______________________#判断心算答案是否正确
right=right+1 #累计答对题数
t2=______________ #每答题一次就更新当前时间戳
print(‘时间到,加法训练结束!’)
#将答题正确率保留两位小数输出
print(‘你完成了’,n,’题,做对了’,right,’题,正确率为%.2f’%(right/n*100),’%’)ans==num1+num2time.time()新知讲解实践 完善程序add.py,并运行测试。开展加法心算游戏活动,比谁答对的题目最多、正确率最高。新知讲解实践与创作 1、修改程序add.py,将原程序修改为两位数的整数口算乘法游戏程序,答题时间由键盘输入,程序保存为mul.py。新知讲解实践与创作新知讲解 2、参考图2-1-3,设计一个抽奖器,随机抽取一个学号作为幸运之星,程序保存为luck.py。图2-1-3 抽奖器程序检测与评估1、以下哪个函数能生成1~5之间的随机整数?( )
A、random.random(0,5) B、random.randint(0,5)
C、random.random(1,5) D、random.randint(1,5)拓展新知D2、以下哪个函数在使用前要先导入所属的模块?( )
A、input() B、print()
C、int() D、time.time()拓展新知D3、以下哪些说法是正确的?( )
A、在Python中,利用库可以让编程者快速实现所需的功能
B、随机数模块random包含在扩展库中
C、标准库和扩展库的模块都需要先导入才能使用 D、库中的所有函数在调用时,一定要写参数 拓展新知C拓展新知4、请完善程序random.py,求出10个三位随机整数的和。#randomnum.py
__________random
s=0
for i in range(10):
n=_______________________________
s=s+n
print(s)random.randint(100,999)import 5、完成表2-1-1的学习评估,并将评估等级填写到“我的成长记录袋”中。拓展新知拓展新知表2-1-1 学习评估表课堂总结1、利用time模块获取时间,用来计算时长,并根据时长确定游戏是否继续。
2、利用random模块每次生成不同的随机整数作为加数。
3、要使用random模块中的函数先导入该模块,导入命令如下:
import random
4、导入模块后,要调用模块中的函数,需按如下的格式书写:
模块名.函数(参数)板书设计一、分析问题
二、设计算法
(一)中位数的算法设计
三、编写程序
(一)列表的创建
(二)中位数的计算
四、调试运行程序谢谢21世纪教育网(www.21cnjy.com) 中小学教育资源网站 有大把高质量资料?一线教师?一线教研员?
欢迎加入21世纪教育网教师合作团队!!月薪过万不是梦!!
详情请看:
https://www.21cnjy.com/help/help_extract.php