资源简介 (共10张PPT)坐标与列表遍历练习复习巩固在X与Y轴上,用坐标表示Item与Dev的位置,利用坐标计算两者之间的距离d,从而确定Dev行走的步数与方向。for i in range(6):Dev.step( Item[i].y-Spaceship.y )Dev.step( Spaceship.y-Dev.y )if i<5:Spaceship.step(Item[i+1].x-Spaceship.x)请补充完整程序填空 1填空 2填空 3复习巩固通过坐标与列表遍列,解决解题中两大问题:Flyer、Spaceship、Dev移动的距离,Dev移动的方向——前进or后退。(1) 距离Flyer[i].step(Item[i].x-Flyer[i].x)Spaceship.step(Item[i].x-Spaceship.x)Dev.step( d )(2)方向d>0时,表示Dev正向行走——前进d<0时,表示Dev反向行走——倒退 思考:如何表示Dev行走的距离d 复习巩固for i in range(5):Flyer[i].step(Item[i].x-Flyer[i].x)Spaceship.step(Item[i].x-Spaceship.x)Dev.step(Item[i].y-Spaceship.y)Dev.step(Spaceship.y-Dev.y)d<0,Dev倒退d<0,Dev前进复习巩固for i in range(4):Dev.step(Item[2*i].x-Dev.x)Dev.turnRight()Dev.step(Item[2*i+1].y-Dev.y)Dev.turnLeft()通过寻找循环体,确定列表遍历次数。请把程序补充完整课堂练习绝对值函数飞板的移动步数必须大于0,那么本题中的部分飞盘的距离数值都为负数,不能作为飞板的移动步数。我们可以通过绝对值函数,获取坐标距离的绝对值:绝对值数学表达:|-2| = 2函数语言:abs(-2) = 2for i in range(5):Flyer[i].step(abs(Dev.y-Flyer[i].y))Dev.step(2)Ex-7课堂练习请写出左边题目程序代码for i in range(8):Flyer[i].step(abs(Flyer[i].y-Dev.y))Dev.step(9)Ex-8轻轻点击,出现答案课堂练习for i in range( ):Flyer[i].step( )Dev.step( )Dev.turnRight()Dev.step( )Dev.turnRight()先确定Flyer行走的距离函数,再确定Dev每次循环所走的步数规律。思考:Dev行走需要重复循环几次?将下列程序补充完整。Ex-153abs(Dev.x-Flyer[i].x)2*(i+1)2*(i+1)课堂练习完成“坐标与列表遍历练习”第10~20题。课后作业查漏补缺,2级训练场所有练习,并截图发至编程园地。(共8张PPT)能量状态判断能量状态判断能量状态判断icode程序中,能量瓶Item共有两种状态,分别为红色(能量瓶损坏)和蓝色(能量瓶正常)。Dev只能收集蓝色能量瓶,不能收集红色能量瓶。所以我们在写程序时,要使用if语句对Item进行状态判断。需要用条件运算符:“非”(not ),用来表示能量瓶没有损坏的状态。红色能量瓶损坏:if Item.broken():蓝色能量瓶正常使用if not Item.broken():讲授新知图示中,Dev 需要收集所有蓝色Item,我们可以使用循环语句表示spaceship行走的路径。但是需要避开红色Item,这就需要我们使用if语句进行判断,解决收集问题。请将下列程序补充完整for i in range(6):Spaceship.step(2)if not Item[i].broken():Spaceship.turnLeft()Spaceship.step(4)Spaceship.turnLeft()Spaceship.turnLeft()Spaceship.step(4)Spaceship.turnLeft()请补充本行代码讲授新知请将程序补充完整for i in range(6):if not Item[i].broken():Dev.turnLeft()Dev.step(2+i)Dev.step(-2-i)Dev.turnRight()Dev.step(2)先寻找规律,再写代码。首先,程序需要循环6次,Y轴上Dev行走的步数从2到7,每次增加1步。X轴上Dev每次行走2步。其次,需要判断红色Item所在位置,Dev可以忽略不走。请将程序补充完整练习巩固Spaceship.step(3)for i in range(4):if not Item[3-i].broken():Dev.step(4)Dev.step(-4)if i<3:Spaceship.step(5)注意正确表达Item的序号,确定判断条件,使用if语句完成收集任务。请将程序补充完整Item[3]Item[2]Item[1]Item[0]课堂练习 注意红色能量瓶Item的序号,本题共循环4次,但是有8个Item,思考如何正确使用变量i来表示Item序号呢?确定判断条件,使用if语句完成收集任务for i in range(4):Dev.step(i+1)Dev.turnLeft()if not Item[3-i].broken():Dev.step(2)Dev.step(-2)Dev.step(-4)Dev.step(4)Dev.turnRight()Item[0]Item[1]Item[2]Item[3]练习巩固完成第5~10题,限时20分钟课后作业完成3级训练场“能量状态判断”剩余题目,并截图发至编程园地。(共9张PPT)坐标判断坐标判断坐标判断当Item的所在位置无规律可循时,在循环语句中,我们需要判断不同Item对象之间的坐标位置,使用if语句对Item坐标进行判断应用。本题中,飞船在移动的过程中,判断能量的y坐标位置和Dev的y坐标。如果Item.y如果Item.y>Dev.y,Dev只需在Spaceship上收集能量。坐标判断补充完整下面的代码,完成收集任务for i in range(4):SpaceshipSpaceshipSpaceshipSpaceshipif Item[i].y < Dev.y:Dev补充完整下面的代码,完成收集任务for i in range(4):Spaceship.step(3)Spaceship.turnLeft()Spaceship.step(3)Spaceship.turnRight()if Item[i].y < Dev.y:Dev.step(3)Dev.step(-3)课堂练习Item[0]Item[8]本题中,要想收集到物品,首先要将Flyer连在一起搭建一条Dev能够通过的路。有些飞板需要移动,有些飞板不需要移动,为了确定哪些飞板要移动,我们将使用if条件语句判断Flyer与Dev之间的距离(或者y坐标)。如果Flyer[i] .y!= Dev.y:Flyer[i].step(2)课堂练习 Flyer的序号从左往右为Flyer[0]~Flyer[8]Item[0]Item[8]修改以下代码以完成收集任务:for i in range(9):if Flyer[i].y != Dev.y:Flyer[i]修改以下代码以完成收集任务:for i in range(9):if Flyer[i].y != Dev.y:Flyer[i].step(2)Dev.step(15)课堂练习使用if语句判断Dev和Item[i]之间的距离关系,完成收集任务。for i in range(4):Dev.step(3)Dev.turnLeft()if Item[i].yDev.step(3)Dev.step(-3)Dev.step(-3)Dev.turnRight()请写出本题程序练习巩固完成第4~10题,限时20分钟拓展与提高Ex-18 灵活应用坐标,使用if语句完成收集任务 先把Flyer移到Item后面位置,再移动spaceship。for i in range(5):if Flyer[4-i].y!=4:Flyer[4-i].step(abs(Flyer[4-i].y-4))Spaceship.step(2)Spaceship.turnRight()Spaceship.step(3)Spaceship.turnLeft()Spaceship.turnLeft()Spaceship.step(3)Spaceship.turnRight()请写出本题程序课后作业完成3级训练场“坐标判断”剩余题目,并截图发至编程园地。(共17张PPT)if else条件判断情境引入如果你没有戴口罩,你就不能进入公共场所!如果你没有……,你就不能…… !新知教授1、if 语句的基本语法?2、else处理条件不满足的情况if 语句初体验If 条件判断的基本语法循序善诱在Python中,if 语句就是 来进 条件判断的。如果 今天作业写完了你就可以踢足球了如果 期末考试班级第一妈妈带你去迪士尼玩。。。。。。。。。。。。思维构建在Python中,if 语句就是 来进 条件判断的。if 要判断的事:条件成立要做的事缩进,Python代码为了美观,简洁,有严格的缩进要求,为一个“Tab”键,或者4个空格else处理条件不满足思维构建else [els] adv.其他的;别的;另外的;不同的else使用格式如下:if 要判断的条件:条件成立时,要做的事情……else:条件不成立时,要做的事情……缩进为一个“Tab”键,或者4个空格编玩编学年龄智能判定系统还记得我们学习过的input函数吗?利用input函数设计一个小学入学年龄判定系统输入的年龄,如果:>= 18,允许就读小学否则 < 18 ,回去读幼儿园编玩编学判断语句演练:1.定义 个整数变量(age)记录年龄2.判断是否满7岁 (>=7)3.如果满7岁,允许进入小学读书4.如果不满7岁,回去读幼儿园age = 7if age >= 7:print("允许进入小学读书")else:print("回去读幼儿园")练习巩固查看地图,所有的飞板都需要移动,飞板的移动情况可以分为两种, Flyer的x坐标比Dev小的移动1步,其他的移动2步。我们可以使用if...else...语句完成如果 Flyer的x坐标小于 Dev.yif Flyer[i].x < Dev.x:那么Flyer移动1步Flyer[i].step(1)否则Flyer移动2步(不满足条件时,执行else后面的代码)else:Flyer[i].step(2)练习巩固补充完整下面的代码,完成收集任务for i in range(6):if Flyer[i].x < Dev.x:Flyer[i].step(1)else:Flyer[i].step(2)Dev.step(Dev.y-Item[0].y)练习巩固应用if...else...语句,判断飞板的坐标情况。提示:如果Flyer坐标比Dev小的移动7步,其他情况移动3步for i in range(5):ifelse:for i in range(5):if Flyer[i].x>Item[2].x:Flyer[i].step(3)else:Flyer[i].step(7)Dev.step(Dev.y-Item[0].y)练习巩固确定判断条件,应用if…else…语句编写代码,完成收集任务 提示:循环到第三次时(i==2),飞船向左转,其他情况都向右转for i in range(6):Spaceship.step(4)if i==2:Spaceship.turnLeft()else:Spaceship.turnRight()课堂练习 提示:迷宫类型,先找到Spaceship行走的路线。使用if else语句完成代码。for i in range(8):Spaceship.step(1+i)if i<2:Spaceship.turnRight()else:Spaceship.turnLeft()课堂练习补充完成第7~10题,限时20分钟练习巩固课后作业完成3级训练场“if else语句”及“if else练习”剩余题目,并截图发至编程园地。(共24张PPT)逻辑运算符新课导入比如多个条件都成 才能执 ,或者有 个条件成 就可以执 ,这时就需要使 逻辑运算符。什么是逻辑运算符呢?妈妈说:如果你期末考试语文与数学都考了100分,就带你去上海迪士尼玩!讲授新课妈妈说:如果你期末考试语文,数学都考了100分,就带你去上海迪士尼玩!语文 数学 判断100 100 成立95 100 不成立100 95 不成立95 95 不成立讲授新课条件一 and 条件二 与/并且条件一 条件二 判断成立 成立 成立成立 不成立 不成立不成立 成立 不成立不成立 不成立 不成立两个条件同时满 ,返回True(成立)只要有 个不满 ,就返回False(不成立)讲授新课a = 100b = 100if a == 100 and b == 100:print(“可以去迪士尼")else:print(“家里蹲,写作业")写成演示代码:注:python中,“=”表示赋值;“==”表示判断两个数是相等讲授新课妈妈说:如果你期末考试语文或数学考了100分,就带你去上海迪士尼玩!语文 数学 判断100 100 成立95 100 成立100 95 成立95 95 不成立讲授新课条件一 or 条件二 或/或者条件一 条件二 判断成立 成立 成立成立 不成立 成立不成立 成立 成立不成立 不成立 不成立两个条件只要有一个满 ,返回True两个条件同时不满足,返回False讲授新课a = 100b = 90if a == 100 or b == 100:print(“可以去迪士尼")else:print(“家里蹲,写作业")写成演示代码:讲授新课我们再来说说最后一种逻辑运算符:not (非 / 不是)条件一 判断成立 不成立不成立 成立如果不 下雨我们今天出去踢球if not rain:print(“我们今天出去踢球”)if rain:print(“下雨了,不能出去踢球了”)讲授新课学完了逻辑运算符让我们结合实际应用试试吧!逻辑运算符CathyADD YOUR TEXT HEREADD YOUR TEXT HEREJohnTony我们可以使用三句话来总结一下:1、and计算中,两者都为True,则结果返回True,否则返回False。2、or计算中,两者至少一个为True,则结果返回True,否则返回False。3、not计算中,原来为True,则结果返回False;反之,原来为False,结果返回True。逻辑运算符a and b 逻辑与:只有当a与b都是为真时,结果才为真。a or b 逻辑或:只有当a与b都是为假时,结果才为假。not c 逻辑非:当c为假时结果为真,否则结果为假。a and b 逻辑与:只有当a与b都是为真时,结果才为真。a or b 逻辑或:只有当a与b都是为假时,结果才为假。not c 逻辑非:当c为假时结果为真,否则结果为假。练一练第一练一练条件语句下面举出一些逻辑表达式的例子,直接在笔记本上写出你的答案:条件: 逻辑表达式:a大于零或者b大于零 if a>0 or b>0 :a大于零与b小于零1 ≤ x < 10a,b,c 都不为零c 不大于 a+ba,b都能被5整除字符c是否为数字n是一个三位正整数a,b,c三个数都不相等讲授新课当Item的所在位置无规律可循时,在循环语句中,我们需要判断不同Item对象之间的坐标位置,使用if语句对Item坐标进行判断应用。本题中,飞船在移动的过程中,判断能量的y坐标位置和Dev的y坐标。如果Item.y如果Item.y>Dev.y,Dev只需在Spaceship上收集能量。逻辑运算符 ( or )练一练回顾if语句的应用,在前面的学习中应用到了逻辑运算符非,"not"。例如在写if语句如果能量损坏:if Item.broken()那么条件要写成如果能量没有损坏,我们需要在前面加上not:if not Item.broken()修改下面的代码,完成收集任务for i in range(5):Devif Item[i].broken():Devfor i in range(5):Dev.step(2)if not Item[i].broken():Dev.turnRight()Dev.step(3)Dev.step(-3)Dev.turnLeft()练一练应用if语句判断的过程我们也可以使用多个条件,例如这一题中,循环的过程里,变量i的值为2和3时,没有需要收集的能量,只有for循环过程中变量i的值比2小 或者 变量i的值比3大时,Dev才前进收集。应用或者连接两个条件,在代码中可以应用关键词”or“if i < 2 or i > 3:Dev.step(5)练一练补充完整下面的代码,完成收集任务for i in range(7):Spaceship.step(2)if i <2 or i >3:Devfor i in range(7):Spaceship.step(2)if i <2 or i >3:Dev.step(5)Dev.step(-5)讲授新课逻辑运算符 ( and )练一练逻辑运算符除了not,或者or之外,还有并且 and这一题中,循环过程变量i的值不等于1并且也不等于4时,Dev才转向并且移动收集。 并且可以用到逻辑运算符“and”如果 i != 1 并且 i != 4:if i != 1 and i != 4:两个条件都满足的情况下执行Dev左转Dev.turnLeft()练一练补充完整下面代码,完成收集任务for i in range(6):Devif i !=1 and i != 4:for i in range(6):Dev.step(1)if i !=1 and i != 4:Dev.turnLeft()Dev.step(3)Dev.step(-3)Dev.turnRight()Dev.step(1)课堂练习逻辑运算符”and“连接的两个条件,必须满足两个条件,那么if语句返回的是True(真),执行程序。只要有一个条件不满足时,就返回False(假),程序不执行。写出完整代码,完成收集任务for i in range(5):if i!=1 and i!=3:Dev.turnRight()Dev.step(4)Dev.step(-4)Dev.turnLeft()Dev.step(2)课堂练习 Flyer的序号从左往右为Flyer[0]~Flyer[8]Item[0]Item[8]修改以下代码以完成收集任务:for i in range(9):if Flyer[i].y != Dev.y:Flyer[i]修改以下代码以完成收集任务:for i in range(9):if Flyer[i].y != Dev.y:Flyer[i].step(2)Dev.step(15)课堂练习 提示:如果Flyer的x坐标和Item的x坐标不相等,或者Flyer的y坐标和Item的y坐标不相等,那么Flyer就需要移动1步。确定判断条件,使用if语句完成收集任务for i in range(6):if Item[i].x!=Flyer[i].x or Flyer[i].y!=Item[i].y:Flyer[i].step(1)Dev.step(3)for j in range(3):Dev.turnRight()Dev.step(5)写出完整代码练习巩固完成第7~10题,限时30分钟课后作业完成3级训练场“逻辑运算符”剩余题目,并截图发至编程园地。(共16张PPT)while 语句情景引入话说东汉末年,天下大乱。群雄并起,诞生了无数能臣武将,最终天下三分,形成了吴蜀魏三国,平分天下,鼎足而立。情景引入程序的运行世界里,有三大流程鼎足而立。顺序结构选择结构循环结构教授新知while循环语句,通常拥有判断条件和内部执行代码,如果满足条件,则不断执行内部的代码,直到条件不满足后则退出while循环语句循环是指反复连续做某事。while语句的一般表达式为:while(条件表达式)循环体语句;while 语句的使用句教授新知查看地图,有一个新的的元素一块时隐时现的绿色飞板,当飞板消失时,Dev无法前进。我们可以应用disappear()函数判断飞板当前的状态,应用while循环语句进行判断。while Flyer.disappear(): #当飞板消失时wait() #重复执行wait()等待函数教授新知教授新知注意while语句在判断时,是判断飞板当前的状态。所以Dev 最好移动到飞板前再进行判断,否则跳出while循环后,飞板的状态依旧是变化的。Dev.step(1)while Flyer.disappear():wait()Dev.step(5)完成完整代码教授新知 Dev只有在飞盘前一个砖块上时,才能进行等待操作。应用while语句编写代码,完成收集任务。while Flyer[0].disappear():wait()Dev.step(3)Dev.step(-1)while Flyer[0].disappear():wait()Dev.step(-4)while Flyer[1].disappear():wait()Dev.step(-3)完成完整代码教授新知当飞船遇到绿色的飞板时,绿色飞板没有消失时,绿色飞板挡住了飞船的路,这时候保持等待。我们可以应用逻辑运算符“not”如果绿色飞板没有消失,重复执行等待while not Flyer.disappear():wait()补充完整代码,完成收集任务while not Flyer.disappear():wait()Spaceship.step(3)完成完整代码教授新知当出现两个会消失的飞盘时,需要分别写两个“消失、等待”的代码,然后再让spaceship通过。补充完整代码,完成收集任务while not Flyer[0].disappear():wait()while not Flyer[1].disappear():wait()Spaceship.step(9)补充完整代码教授新知Dev的总能量为100,每经过一次崎岖的地块,Dev的能量就减少10。每经过或在太阳能板上等待一次就能增加10的能量。我们可以应用while语句判断当前Dev的能量。当Dev的能量少于100时,在太阳能板上保持等待崎岖路块,能量减10.太阳能板,能量加10.教授新知本题中,Dev前进8步移动到太阳能板上以后,消耗了70的能量,可以应用while语句进行判断,并补充能量。本题程序代码为:Dev.step(8)while Dev.energy<100:wait() #只有Dev在能量板上等待,才能完成充电100。否则只能充10.Dev.step(4)崎岖路块,能量减10.太阳能板,能量加10.教授新知注意本题中Dev的能量只有20。观察Dev的收集路线,找出最优路线,编写代码完成收集任务。Dev.step(8)while Dev.energy<100:wait()Dev.step(4)练习巩固完成第11~15题,限时20分钟课后作业完成4级训练场“while入门”及“绿色飞盘(1)”剩余题目,并截图发至编程园地。 展开更多...... 收起↑ 资源列表 1 坐标与列表遍历练习.pptx 2 能量状态判断.pptx 3 坐标判断.pptx 4 if else 条件判断.pptx 5 逻辑运算符.pptx 6 while语句.pptx