内容正文:
周而复始的循环
——计数循环
淮安中学 陈燕
教学目标
壹
掌握for语句的作用和格式。
贰
掌握range函数的用法。
叁
学会根据问题需求,抽象问题的本质,建立问题模型,设计相应算法,编写Python语言的程序,从而掌握编写程序的过程与方法。
PART ONE
引入与for语句
课程引入
今天带大家怀旧一下,看看老师小时玩的游戏,大家想不想尝试一下这个游戏吗?(很多组合可以分发给学生尝试)。这种有规律的重复的旋转就绘制出各式可爱的图形,但是在绘制过程中很容易手一抖就会毁掉整个图案的美感,我们能不能借助电脑编程来画出完美的图案呢?
分解问题
大家用画板试一试图形的绘制,看一个这个图形到底是怎么画出来的?
图一
图二
图三
这个过程用Python语句怎么实现呢?
图一代码:
import turtle
turtle.color("red","")
turtle.begin_fill() #填充
turtle.forward(200) #以默认向右的方向绘制长度200的横线
turtle.left(170) #画笔向左旋转170度
turtle.forward(200)
turtle.end_fill()
这个过程用Python语句怎么实现呢?
图二代码:
import turtle
turtle.color("red","")
turtle.begin_fill() #填充
turtle.forward(200) #以默认向右的方向绘制长度200的横线
turtle.left(170) #画笔向左旋转170度
turtle.forward(200)
turtle.left(170) #画笔向左旋转170度
turtle.forward(200)
turtle.left(170) #画笔向左旋转170度
turtle.forward(200)
turtle.left(170) #画笔向左旋转170度
turtle.forward(200)
turtle.left(170) #画笔向左旋转170度
turtle.forward(200)
turtle.left(170) #画笔向左旋转170度
turtle.forward(200)
turtle.end_fill()
探索与实践
大家观察图一和图二的代码,你们推测图三的代码会是什么样子呢?
根据给出的图一和图二的代码,请同学们自己尝试一下如何修改代码变成图三类似的效果。(学生在Python中调试运行)
经过大家的实践尝试,你们觉得代码有什么问题?这些代码有什么规律?
for语句基础
for 循环变量 in 列表:
语句或语句组(循环体)
思考:根据for语句的基本结构和老师给出的流程图,请同学思考下面一段代码的运行过程,并总结for语句的执行过程和优点。
for i in [“hello”,”world”]:
print(i)
认识列表
列 表:包含多个数据元素,同时它是一个有序的集合
列表就是用来存储对象的对象,可以将多个对象有序存储。
#创建列表,各元素用逗号隔开,放在方括号内
#列表可以存储混合类型的数据
object=["石榴",1,"香蕉","橙子","梨子"]
object[0]="苹果"
del object[1]
object. append("猕猴桃")
尝试分析下面程序的运行结果?
for i in range ["石榴","香蕉","橙子","梨子"]:
print (i)
关于range()函数
range()函数,它可以生成某个范围内的数字列表。
range(start ,stop[,step])
例:
range(8)会生成[0,1,2,3,4,5,6,7]这样一个列表。
range(1,6)会生成[1,2,3,4,5]这样一个列表
range(1,9,2)就会生成[1,3,5,7]这样一个列表
下面这个循环可以输出0到10的自然数。
for i in range(11):
print (i)
PART TWO
问题拆解 实践探索
实践探索
(在Python中调试运行)
import turtle
turtle.color("red","yellow")
turtle.begin_fill() #填充
___________________
___________________
___________________
turtle.end_fill()
挑战自我
尝试绘制一个五角星
import turtle
turtle.color("yellow","red")
turtle.begin_fill()
__________________
______________