第五单元进阶程序设计(总10课时)第一节选择编程语言(1课时)一、教学目标1、了解程序设计语言和两种翻译方式;2、了解Python背景、功能、安装,熟悉Python编程环境;3、编程初体验。体验一个小程序从建立、输入、调试、运行、保存的全过程。掌握Turtle模块的调用,并尝试修改Turtle图案属性。二、重点难点教学重点:熟悉Python编程环境;编程初体验教学难点:编程初体验;程序的书写规范和调试窗口的使用。三、教学过程(一)认识Python语言1、Python语言Python在英文中的意思是“蟒蛇”,这个语言的标识就是两只缠绕的蟒蛇。Python语言的应用范围非常广泛。例如,它可以用在游戏开发中;电影中的3D渲染也会用到Python语言;互联网中Python语言的声音更是无处不在,谷歌、豆瓣和知乎等网站都是使用Python语言搭建。Python语言是著名的GuidovanRossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。GuidovanRossum从2005年开始就只于谷歌公司,在谷歌以及编程社区的大力支持下,Python也迎来了大发展。2、启动Python3、Python开发环境(二)编程初体验——我的第一个Python程序chengxu1.py代码:importturtle#调用turtle模块a1=turtle.Turtle()#窗口中显示一只海龟,并给他命名为“a1”关于程序的书写:①Python语言是区分大小写的,比如此处的Turtle()中的T要大写;②Python语言中的字母和符号只能是半角英文符号;(三)实践与思考1、把a1.shape()语句添加在chengxu1.py程序的后面:提示:请你每次在中输入以下不同的内容:square、circle、arrow、turtle,然后,保存并运行程序,观察每次的运行结果。说一说,shape()的作用。语句显示结果shape(turtle)shape(arrow)shape(circle)shape(square)2、把a1.color()语句添加在chengxu1.py程序的后面:提示:请你每次在中输入以下不同的内容:red、green、blue,然后,保存并运行程序,观察每次的运行结果。试一试:除了red、green、blue,其他颜色能不能用?说一说,color()的作用。语句显示结果color(red)color(green)color(blue)第二节选择编程语言(3课时)第1课时控制“海龟”移动一、教学目标1、学会用函数控制海龟运动;2、掌握几个函数及参数的设置:forward()、speed()、write();3、了解程序的三种结构之一——顺序结构。二、重点难点教学重点:函数forward()、speed()、write()教学难点:顺序结构编程及简单应用。三、教学过程(一)函数forward()格式:forward(参数)功能:向前移动(这里的“向前指的是箭头指示的方向”)例如:forward(100)##向前移动100个像素(二)函数speed()格式:speed(参数)功能:设定速度例如:speed(slowest)##以最慢的速度不同参数的speed()功能speed(slowest)最慢speed(slow)慢速speed(normal)正常速度(系统默认值)speed(fast)快速speed(fastest)最快(三)函数write()格式:write(参数1,参数2)功能:在屏幕上显示文字例如:write(起步,font=(黑体,16))##屏幕上显示黑体16号的“起步”两个字。(四)程序1——海龟的简单移动importturtlea=turtle.Turtle()a.forward(100)程序解释:forward(100)——海龟向前移动100个像素(这里的“向前指的是箭头指示的方向”)(五)程序2——海龟的多样运动(六)实践与思考结合两节课学过的知识,修改程序2,使之实现如下功能:提示:color()函数——设置颜色write()函数——设置字体字号第2课时控制“海龟”移动一、教学目标1、了解常量、变量、表达式、赋值;2、掌握变量的命名、表达式的组成;3、掌握函数Shape()、left()、type()及其参数的设置。二、重点难点教学重点:常量、变量、表达式、赋值教学难点:给变量赋值。三、教学过程(一)常量常量就是不变的值,主要由数值型常量和字符串常量。字符串常量是用引号括起来的字符串。例如:数值型常量——100、3.14159字符值常量——slowest、起步(二)变量变量是指在程序运行过程中,其值可以改变的量。变量是内存中存放数据的存储单元,存放的数据叫变量的值,给存储单元的命名叫变量名。变量名的命名规则,必须是以字母或中文开头,后面可以有字母、中文或数字。正确的变量名,例如:小红1、pi、a、x2(三)表达式表达式是程序中能计算出值的式子。“值”的含义是广泛的,比如:真假、字符串都是值,turtle.Turtle()的值则是一个海龟对象。以下都是表达式:判断原因是否是表达式1+1值是2是12值是假是3是常量,值是3是a1是变量,有值是turtle.Turtle()值是一个海龟对象是3/2值是1.5是小黑.forward(100)值是运动距离100像素是Thisisabook字符串是常量是pi*r*rpi和r是变量,计算结果是数值是a+b结果是字符串ab是小黑是变量是(四)赋值1、什么是赋值赋值就是给变量赋予一个值。因为变量其实是内存中的存储单元,所以其中存储的数据是可以变化的。2、赋值语句用赋值语句,可以给变量赋值。赋值语句的书写格式:变量=表达式例如:n=1#把1赋予变量n,执行后n的值为1n=n+1#把n+1的结果计算出来后,赋值给n,则n的值增加1a1=turtle.Turtle()3、变量的特点变量是变化的,存储的是最新的值。4、变量的数据类型Python中的每一个“值”都有其自身的类型,如:字符串是字符型、真假是布尔型、可计算的数是数值型……。不同数据类型的值之间是不应该进行运算的,比如word+1是错的。但是,可以将一个类型的值转换为另一个类型,这需要用到一些类型转换函数。函数说明int()把数字字符串转换成整数,int(2)得到整数2float()把整数和字符串转换成实数,float(5)得到5.0,float(5)得到5.0str()把数字转换成字符,str(5)得到5type()查看值的类型试一试:你可以输入下面的语句,然后运行程序,观察调试窗口的结果显示。print(int(2)+2)#结果为4print(Iam+str(5)+yearsold.)#结果为Iam5yearsold.print(type(Marry))#结果是Marry的数据类型为字符型print(type(100))#结果是100的数据类型为整型(五)程序1——变化的变量a=1b=2print(a,b)#12a=b#让a得到b的值,所以,此语句执行后,a和b的值都是2print(a,b)#21(六)程序2——第2只海龟(七)实践与思考编程实现3个变量的值的交换:例如:开始时a=1,b=2,c=3,程序执行后使得,a=2,b=3,c=1。编程思路为:第3课时绘制正方形一、教学目标1、学会使用left()命令,完成绘制正方形程序,进一步体会程序的顺序结构;2、综合运用所学,尝试自己编写程序。二、重点难点教学重点:left()命令教学难点:尝试用算法分析和解决生活中的问题。三、教学过程(一)left()命令left()函数的功能:按逆时针旋转一个角度。(二)程序1——海龟向左转(三)程序2——绘制正方形设计思路:海龟前行→左转→前行→左转→前行→左转→前行→左转程序说明:程序自上而下,依次执行每一条语句,就是程序的顺序结构。绘制正方形程序中语句a.foward(100)和a.left(90)依次重复执行了4次,这种繁琐的不必要的设计,我们将在下节课中得到解决。试一试:去掉最后一条语句a.left(90),结果会怎样?(四)实践与思考1、修改绘制正方形程序,使之可以让不同边长的正方形绘制起来更容易。提示:用一个变量(上节课所学)代替边长1002、在绘制正方形程序基础上修改程序,尝试绘制一个正五边形,或其他正多边形都可以,如下图所示。提示:应该怎样控制left()的角度?第三节简化重复命令(3课时)第1课时绘制多个旋转的正方形一、教学目标1、认识程序的循环结构;掌握for循环;2、实现绘制多个正方形程序。二、重点难点教学重点:for循环教学难点:嵌套循环三、教学过程(一)程序1——改进绘制正方形程序,认识循环←比较,改进为→循环语句格式:for循环变量inrange(次数):循环语句块功能:循环语句块中的所有语句将被重复执行指定次数。说明:1、循环次数由range(次数)决定,range(次数)得到一组从0到n-1的整数,即循环语句块被循环执行n次。2、循环语句块中可以有一条或多条语句,这些语句都是要被重复执行的。3、循环可以嵌套,如:importturtlea=turtle.Turtle()foriinrange(4):a.forward(100)a.left(90)importturtlea=turtle.Turtle()a.forward(100)a.left(90)a.forward(100)a.left(90)a.forward(100)a.left(90)a.forward(100)a.left(90)说明:内循环作为外循环的循环语句块,被重复执行n次;而内循环本身也要重复执行m次。(二)程序2——绘制多个旋转的正方形←改进为→分析:Importturtlea=turtle.Turtle()foriinrange(10):forjinrange(4):a.forward(50)a.left(90)a.forward(20)a.right(360/10)importturtlea=turtle.Turtle()foriinrange(10):a.forward(100)a.left(90)a.forward(100)a.left(90)a.forward(100)a.left(90)a.forward(100)a.left(90)a.forward(20)a.right(360/10)Importturtlea=turtle.Turtle()foriinrange(10):forjinrange(4):a.forward(100)a.left(90)a.forward(20)a.right(360/10)I循环体重复10次画10个正方形J循环体重复4次画一个正方形第2课时幻影海龟一、教学目标1、掌握while循环;2、会调用random模块获得随机整数randint()。3、知道up()、stamp()、goto()函数的作用二、重点难点教学重点:掌握while循环和random()随机函数教学难点:理解random()随机函数三、教学过程(一)while循环格式:while判断条件:循环语句块功能:判断条件是否为真,如果条件为真,则重复执行循环语句块,直到条件为假,则退出循环。(二)random()随机函数调用随机模块:importrandom获得x~y之间的随机整数:randint(x,y)条件是否为真?循环语句块假真(三)程序1——幻影海龟importturtleimportrandoma=turtle.Turtle()a.color(red)a.shape(turtle)a.up()#尾巴抬起,不划轨迹while01:#无限次重复a.goto(random.randint(-300,300),random.randint(-300,300))#让海龟移动到指定坐标位置a.stamp()#让海龟在所在位置留下印迹(四)思考与实践1、编写程序实现如图效果,保存为zy1.py设