条件判断,单向判断:if 双向判断:if…else…多向判断:if…elif…else…if嵌套if嵌套的执行顺序
条件判断
对于Python也是这样,Python之所以能完成自动化任务,比如自动打卡,自动抓取网络热词,自动下载大片,就是因为它可以执行条件判断。在Python中,
条件判断语句总共有三种表现形式, 我们从最基本的单向判断:if语句开始。
一单向判断:if
向判断:if代表什么呢?你会发现, 一个如果……就。那么,如果我们要用代码来实现出来的话,就可以用条件判断语句中的单向判断:if来实现。
# 为钱包赋值
money = 1000
# 条件:如果有1000块钱以上(包含1000块),就去吃大餐
if money>=1000:
# 结果:显示‘你去吃大餐’的结果
print('你带女朋友女去吃大餐')
那么,这段代码是如何实现的呢?
首先,第一行代码,用=号对当前情况进行赋值:将钱包1000赋值给变量money。
第二步,确定if条件: 如果钱包money的值>=1000, 就执行冒号后的下一行命令。
第三步,用print ()命令打印出结果带上钱,带上女朋友。搜嘎,原来if语句的单向判断如此简单。
在这里,你会发现,在if语句的冒号后面,print()语句的前面,出现了几个空格, 这又是为什么呢?
在编程武林中,空格不叫空格,而是叫缩进。就如同我们写报告一样,每段开始都要空两格。对于Python而言,缩进是一种语法规则,它会帮助Python更好的分清代码结构与层次,计算机更好的执行Python代码。【注:缩进是四个空格或一个Tab键】
在if条件语句中,缩进是不需要手动按空格的。当你用英文输入法打:后按回车,我们的开发工具(用来编写Python代码的程序)为了方便大家编程,会自动实现下一行代码,向右缩进的功能。此时,被缩进的所有内容被称为if语句内的代码块。这就表示: 如果满足if条件,计算机就会执行if语句内的代码块。(缩进的所有内容)
你看,Python是不是又向你吐槽了。 IndentationError: expected an indented block(缩进错误)
这是由于,当我们把缩进去掉时,print语句就已经不在if语句内了, if语句与print语句已经成为了两个不同的代码,平行的兄弟关系。
这样就导致if语句内没有执行的代码,也就是无论满足还是不满足代码,都没有内容执行,这个条件也就没有存在的意义了。
选择题 ,现在,我们来检验一下刚才学习的成果。下面关于if语句的表述,哪个选项说法是正确的?
A:如果想用代码实现打印功能, 使用if语句
B:If条件的含义是 如果…就
C:if语句冒号后面的内容,不需要缩进。
答选B。 A项,打印功能使用print语句, C项,if语句冒号后面的内容需要缩进。
下面,我来总结一下单向判断if语句
1、符号要在英文输入法下输入;2、检查条件判断语句下是否缩进;3、只要显示运行通过,就请点击回车键继续课程。
# 为钱包赋值
money = 500
# 条件:如果有1000块钱以上(包含1000块),就去吃大餐
if money>=1000:
# 结果:显示‘你去吃大餐’的结果
print('带女朋友吃大餐')
这时, 你可能会想,没有结果,怎么也不向我吐槽啊?到底对不对啊?
首先,money = 500是if语句 判断的前提条件, 然而不满足money>=1000这个条件,所以不会执行条件下print('带女朋友吃大餐')语句。
告诉你,计算机是一步一步往下执行代码的。所以,当第一行赋值语句不满足if语句条件时,Python就会这么思考:条件不满足,无法执行if语句内的代码块,从而直接跳过
也就是说,money只有500,没有满足1000的if条件,if条件内的代码块无法执行, 自然就不能带女朋友吃大餐了
那么,如果money达不到1000,就只能带女朋友吃快餐;money达到1000,就不能带女朋友吃大餐刚。这样,在Python中如何实现呢?
二双向判断:if…else…
在Python中,我们可以利用if的双向判断形式if…else…去实现。
# 为钱包赋值
money = 1000
# 条件:如果有1000块钱以上(包含1000块),就去吃大餐
if money>=1000:
print('带女朋友去吃大餐')
# 条件:当不满足if条件,执行else条件下语句
else:
print('带女朋友去吃快餐')
是不是,有种备选的感觉。做好了万全准备,如果不满足条件时,我们要怎么办。
Python提供了if…else…语句,让我们有了另一种选择。如果…不满足,就…
if…else…其实就是二选一,满足条件执行if里面的代码块,不满条件执行else代码块。
好了,下面我们做个题来巩固一下if…else…的知识点:
昨天晚上,小美计划去锻炼,所以她打算了一下,如果体重超过90斤(包含90斤),她就每天去跑步;如果体重不超过90斤,她就每天去散步。结果称了称,98斤。
请在下面代码框里用if...else...把小K锻炼判断语句写出来。【要点提示:1、为小美的体重weight赋值;2、开始判断,如果if体重超过90斤,打印结果她就每天去跑步,否则else,打印结果她就每天去散步;3、if和else语句后需跟英文冒号:】
下面看一下小美自己写的代码,和你们给我写的一样吗?
# 赋值语句:为体重赋值
weight = 98
# 条件:满足体重超过90(包含90)
if weight>=90:
# 结果:显示‘跑步’的结果
print('她就每天去跑步')
# 条件:当赋值不满足if条件时,执行else下的命令
else:
# 结果:显示‘散步’的结果
print('她就每天去散步')
下面和我来总结一下if…else…语句的知识点。
代码告一段落,我们在回到带女碰友吃饭的问题上
如果此时钱包里的钱是800块钱,女朋友想去吃披萨,那这个问题应该怎么处理呢?
三多向判断:if…elif…else…
解决问题前,先梳理一下逻辑思路。
通过上面分析,我们可以得知:如果钱包里的钱多于1000(包含1000),带女朋友去吃大餐;如果钱包里的钱多于800(包含800),去吃披萨;如果钱包里的钱比800少,去吃快餐。
这里就有了三个如果条件。那么在判断3个和三个以上的条件是,我们就需要使用Python中if…elif…else…语句。
那这个代码如何写?点击下方代码,运行一下,感受一下三个如果的逻辑
# 为钱包赋值
money = 999
# 条件:如果有1000块钱以上(包含1000块),就去吃大餐
if money>=1000:
print('女朋友去吃大餐')
# 条件:如果有800-1000块钱之间(包含800块)
elif money>=800:
print('女朋友去吃披萨')
#不满足条件
else:
print('女朋友去吃快餐')
看,多向if…elif…else是不是很好理解?
第一步,第一行赋值,会自上而下的顺序挨个试一遍,看自己满足哪个条件?
第二步,满足哪个条件,就执行哪个条件里面对应的代码块,不满足条件就继续往后试,试出结果为止。
elif 与if本质一样,也就是其他条件的意思, elif后面直接写条件。
在上面代码中 money=999会对下面if elif else条件逐渐尝试,看自己满足哪个条件,满足哪个条件,就执行哪个条件下的代码块。
今天晚上,小美要加班了。如果加班时间超过10点(包含10点),小美就打车回家;如果加班时间在8点-10点之间(包含8点),小美坐地铁回家;如果加班时间早于8点,小美骑单车回家。
提示:
(1)为小美的加班时间赋值。
(2)条件1,如果加班时间>=10,小美打车回家。
(3)条件2,如果8<=加班时间<10,小美坐地铁回家。
(4)条件3,如果加班时间<8, 小美骑单车回家。
步骤有了,下面请你告诉小美该如何回家。
下面看看小K自己做
下面看看小美自己做的答案。
# 为时间赋值
time = 9
# 条件:如果超过10点,打车回家
if time>=10:
print('小美打车回家')
# 条件:如果在8点-10点之间
elif time>=8:
print('小美坐地铁回家')
#条件: 早于8点
else:
print('小美骑单车回家')
下面,我们来总结一下elif的知识点: