大家好呀!我是CoCo老师,欢迎大家来到CodeCombat编程世界。很开心我们一起在CodeCombat学Python,今天是第八课,我们继续学习条件语句if。
一、今日词汇
大家都知道,Python语句都是由英语单词组成的,为了方便大家学习,我们先来看看会用到的单词吧。就是下面这些,你都认识吗?
英语单词 | 中文意思 |
if | 如果 |
else | 另外 |
condition | 情况,状况 |
cleave | 劈砍 |
enemy | 敌人 |
distance | 距离 |
二、今日句法
学完了单词,是不是迫不及待要闯关了呀。快点打开我们的学习网站koudashijie.com,登录进入课程页面,打开计算机科学2课程,进入地图,地图长下面这样:
上次我们一起闯了计算机科学2的第5关林地小屋, 我们也学会了最简单的if语句,if语句和 while语句有些像,当满足某些条件时就会执行: 后缩进了的代码块,如果不满足条件就不执行,而它与while的区别是whi le会反复检查条件直到条件失败,但if仅仅检查一次,然后就继续执行后面的代码了。 如果对if语句还有疑问可以查看我们关卡的提示:那按这么说,if语句不就和while+break的效果一样了吗?如果我们执行一次while语句就跳出循环,它不就是一个if语句吗?为什么要多定义一个if而不使用while呢?我们来看下一关,第11关:
查看目标:村民不能死,消灭食人魔。
分析思路:如果我们运行一次代码就会发现我们打完左边的敌人后等右边敌人出现了就来不及回去保护村民了,所以我们应该尽可能待在村民的身边,同时有敌人时出发迎击。这时候我们可以写:如果有敌人,攻击敌人。如果没有敌人,待在村民身边。但两次如果有点啰嗦,因为他们总是相反的,这样,或者那样。这时候else就起作用啦,我们来看看代码:
编写代码:我们看到else语句和if是并列的,同时它也带有:结尾,它后面的代码也有缩进,所以else和if就整整齐齐了。那么我们在第七行补充攻击代码,11行补充回村民身边的代码就可以了(感谢村民不乱跑)。
查看目标:打开宝箱,保持存活
分析思路:刚刚我们提到,当情况是这样或那样的时候,我们用if/else来处理,那么我们就会想到,如果情况是这样,这样或者那样呢?也就是如果我们有两种以上的情况,不仅仅正反两面,而是更多种情况下,我们应该怎么办呢?当然我们还是可以使用很多很多的if来完成目标,但python给我们提供了另外一个很方便的语句:elif
编写代码:我们发现elif和if还有else依然是整整齐齐的一家人,细心点的同学可能已经发现elif就是else+if的简写,也就是虽然我们已经离开了第一种情况,但我们这时又需要再判断一次其他条件,在这关里就是判断敌人是否已经靠近你了,我们看看这一次的代码应该怎么写吧:
三、总结交流
今天的课上完了,你还记得今天学了什么吗?不记得的话可能看看下面三张知识卡片回忆一下~