python里elif必须在if后面_Python真好玩:条件语句

7b5a2e0e0079d436f1e96062014e04e4.png

我们每天,都要根据不同的情况作出判断和选择。

例如:今天带不带雨伞。

如果天气预报说,今天有雨,那么带上雨伞。

例如:今天的安排。

如果今天是周末,那么出去玩,否则去学校上课。

在编写程序的过程中,我们也需要用到条件判断,例如问“是”与“否”的问题,然后根据不同的答案去做不同的事情。

IF语句简介

在Python中,我们通过IF语句来进行条件判断,控制程序的执行。

IF语句的基本形式是:

801775b8f6c91cece1602cde7f613441.png

运行原理就是:给出条件,决定下一步怎么做?如果条件为真,就执行语句的内容,为假就退出。

学习之前,我们首先要理解Python中的真假

d94b902b88bc2a056cb9fd30044912fd.png

1. 任何非零和非空对象都为 解释为True

2. 数字0、空对象和特殊对象None均为 解释为False

例如:

数字1是true;

数字99是true;

数字 -1是true;

“hello”是true;

一切非0非空都是true

3. 比较和相等测试会递归地应用到数据结构中

4. 返回值为True或False

比较运算符,也叫关系运算符,用于对常量、变量或表达式的结果进行大小、真假等比较,如果比较结果为真,则返回 True;反之,则返回 False。

Python 支持的比较运算符如下图所示

747dbef3b66dbc43fbfc7b222a455c82.png

例如:

5 > 3返回True;

5 > 9返回False;

5 == 9返回False

8 != 6 返回True

3 ** 4 >= 90 返回False

5. 布尔and和or运算符会返回真或假的操作对象。

Python中有三种布尔表达式运算符:

X and Y:如果X和Y都为真,就是真。也就是两个条件都要满足。

X or Y:如果X或Y有一个为真,就是真。也就是两个条件满足其中一个就好。

not X:如果X为假,就是真,如果X为真,就是假。

Python中IF语句包含4个部分:

  • if关键字

  • 条件表达式

  • 冒号

  • 缩进的代码块(执行语句)

30fd5a8c7d92b82f64a67c97f9314c63.png

我们来试几个例子。单击IDLE菜单栏的File(文件)—— New File(新建文件),在新窗口中输入如下代码:

age = 18

if age >= 18:

print('你是一个成年人了')

这里一定要注意,print语句前面,会有非常明显的4个空格,千万不要企图删除他们。在Python程序中,这个称为缩进

按下F5,保存你写的py文件,并且调试运行它。(你可以存在任何你喜欢的位置,名字可以写成3-1,表示第三次课的第一个程序)

b8c04c1862a163faf3e50e444443a976.png

回到shell交互窗口,查看运行结果,是不是如下图所示:

ec619a9d5c2ca7724c971d4690819347.png

代码分析如下:

age = 18

创建变量age,并赋值数字18

if age >= 18:  

     print('你是一个成年人了')

如果age的值大于等于18,则在屏幕打印输出“你是一个成年人了”。这里age等于18,条件为真,所以执行print语句。

我们把刚刚的代码修改一下,把age的值改成16。

age = 16

if age >= 18:

print('你是一个成年人了')

按下f5键,保存并运行这段代码,你会发现,交互窗口什么也没输出。那是因为,age<18,条件不能满足,为假,所以不执行print语句。

继续修改程序,把age改回18,并且继续添加一段print语句:

age = 18

if age >= 18:  

    print('你是一个成年人了')

    print('你要对自己负责')

按下f5键,保存并运行这段代码,你看到了什么?

708262dc764973e63614507bb75a47ea.png

Python用缩进来标识同一层次的代码块,所以上面2个print语句是同一个代码块,当if条件为真,2个print语句都会被执行。

再来修改一下程序代码,这次,我们把age改到16岁,然后删除第二个print语句前面的空格。

age = 16

if age >= 18:  

    print('你是一个成年人了')

print('你要对自己负责')

按下f5键,保存并运行这段代码,猜猜结果会是什么???

37c652429e5264a00e2d9aa8e92c4818.png

为什么只显示了第二条print语句的内容呢?

那是因为取消了缩进之后,第二个print语句属于主程序了,不再经过if的判断,直接执行输出。

继续修改程序,这次将年级改回18岁,将第二个print前面的空格还原,并且多加2个空格:

age = 18

if age >= 18:  

    print('你是一个成年人了')

      print('你要对自己负责')

按下f5键,保存并运行这段代码,你会发现,系统提示错误了

dcf88e27c1ace086110a5166f18a0fa2.png

这个是“意外缩进”的错误提示,红色色块会告诉你错误的位置,Python要求你在同一个代码块中,对所有行都使用相同数量的空格来缩进,为了能正常的运行Python程序,我们必须严格按照Python的规定来编码。

一般使用4个空格(或1个tab制表符)做为缩进,它也是约定俗成的书写习惯。

if不做的事情,else来做

1fcf91b8430b953a49f526180407bbe4.png

在刚刚的案例中,我们都只是对条件语句判断为True(真)的时候,做了相应的事情,那么,如果为假(False),我们啥也没做。

如果我需要条件判断为False的时候,去做另外一件事情呢?

例如:

如果今天天晴,我们就去公园玩,否则,我们就去博物馆。

用Python来标识这段逻辑如下:

if 今天天晴 :

   去公园

else :

   去博物馆

else语句和if语句搭配一起使用的,当if条件判断为False的时候,程序执行else后面的代码块。

a9698449319eeaff142bf3212ea0177d.png

我们还是通过一个例子来理解,添加一个else语句,修改刚刚的程序代码如下,注意代码的缩进,else和if不属于同一个代码块,前面的缩进需要删除;else后也需要冒号“:”

age = 16

if age >= 18:  

    print('你是一个成年人了')

else:

    print('你还是个孩子')

按下F5,保存并运行,看看你的结果是不是跟下图一样。

17636f3324a22a9e7dbf2b253499d6be.png

由于age等于16,不满足if的条件判断,所以执行else后面的print语句,输出“你还是个孩子”

else和if的好兄弟 —— elif

666ecdc4f38766e44fc2bdf9d09b7a5d.png

有些时候,我们面临的选择不止1个2个,有可能是很多个。例如对于期末成绩的评定,我们可以有如下4个档次:

如果 成绩小于60分

     那么评定为“不及格”

如果 成绩大于等于60分且小于75分

     那么评定为“合格”

如果 成绩大于等于75分且小于90分

     那么评定为“良好”

如果 成绩大于等于90分

     那么评定为“优秀”

这时候,我们就需要else和if的好兄弟,elif出马解决这个多选一的问题了。

if elif的嵌套结构如下图所示

955f0a5cbc9358e9c59c4d04c6b2016c.png

Python中使用以下形式:

if 判断条件1:

    执行语句1……

elif 判断条件2:

    执行语句2……

elif 判断条件3:

    执行语句3……

elif 判断条件n:

    执行语句n……

else:

    执行语句……

在我们这个案例中,代码如下:

score = 85

if score < 60:

    print('不合格')

elif score < 75:

    print('合格')

elif score < 90:

    print('良好')

else:

    print('优秀')

按下F5,保存并运行,看看你的结果是不是跟下图一样。

e576f324bce59b5f41660ca506acfbbc.png

这里有同学提出一个问题,从第一个elif开始,为什么只写了一半的条件规则,例如,合格的条件明明是要求大于等于60,且小于75,我们在程序当中,忽略了>=60。

请对照下图来理解:

00ba5ef3258481ad9658369db24c3dec.png

程序一开始,我们创建了一个score变量,赋值85。第一次if判断score是否小于60,结果为假,于是去到第二次判断。

这里,能够看到第二轮条件判断的数据都应该是>=60的,所以我们不需要强调合格的标准是score>=60且score<75,条件可以省略前半部分,保留score<75就好了。

(如果你还不能理解,你就想象成一个大教室有很多同学,你说,4月以前出生的同学,请去1号考场,这群同学就离开了;然后你想安排4月到6月出生的同学去2号考场,你只需要说,请7月以前出生的同学,去2号考场,因为教室里已经没有4月以前出生的同学了。)

第二次判断score是否小于75,结果又为假,于是到了第三层判断。

这时候,能看到第三层条件判断的数据必然是>=75的,所以我们只需考虑score是否小于90,结果为真,执行输出,跳出if程序块,回到主程序。

延伸一下,我们可以把score的分数换几个,然后你看看,系统输出的结果,是不是和你计算的一样。

组合条件

在现实生活中,我们经常遇到这样的情况,爸爸妈妈跟你说,只要语文和数学有一门是满分,就奖励你一个玩具;如果两门都是满分,就带你出去玩。要是没考好,就啥也没做,在家做作业。

467a8c25f56d3d27f7c4ac8d9a95d65f.png

那么,这样多个条件的情况,怎么用Python代码来实现呢?

规则如下:

两个条件同时满足找and

两个条件任选一个找or

新建py文件,这里,我们用shuxue来表示数学成绩,yuwen来表示语文成绩,假设小明的数学考了100分,语文95分,我们输入以下代码:

shuxue = 100

yuwen = 95

if shuxue == 100 and yuwen == 100:

    print('出去旅游')

elif shuxue == 100 or yuwen == 100:

    print('买个玩具')

else:

print('家里蹲,做作业')

按下f5键,保存并运行这段代码,看看是不是能得到以下的结果:

1f54d0c27db47dc16a0b952bce20ba3d.png

shuxue == 100 and yuwen == 100 表示数学和语文都是100,结果才能返回True.  

shuxue == 100 or yuwen == 100 表示数学和语文只要有一个100,结果就能返回True。

我们同样可以把分数换几个数字,看看,系统输出的结果,是不是和你预想的一样。

今日小结:

在这次推送课程里,你学到了如果用if语句来创建条件判断执行的语句块。你还学会了如何用else和elif来扩展if语句;你掌握了条件运算符的用法,还学会了如何用关键字and和or将条件组合起来。

今日的思考题

你认为下面的代码会输出什么?

e175270fe8b6005a51c5be5e23c21c7c.png

关注微信公众号,输入“条件判断”,获取习题答案和讲解

abf15878324c2cc683714154b6e9a4fd.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值