Python第十四天 if else条件语句
前面的代码都是顺序执行,称为顺序结构。但是在很多情况下,顺序执行并不能满足工作中的需要,需要程序作出判断的时候,顺序结构的语句就不满足。
Python中,可以使用 if else 语句对条件进行判断,根据不同的结果执行不同的代码,称为选择结构或者分支结构。
if else 语句可以分为三种形式:if、if else、if elif else语句。它们的执行流程如下图所示:
以上三种形式中,第二种和第三中形式是相同的,如果第三种形式中的 elif 块不出现,就变成了第二种形式。此外 elif 和 else 都不能单独使用,必须和 if 一起出现,且要正确配对。
语法格式解释:
“表达式”:可以是一个单一的值或者变量,也可以是由运算符组成的复杂语句,形式不限,只要它能得到一个值就行。不管 “表达式” 的结果是什么类型,if else 都能判断它是否成立(真或假)
“代码块”:由具有相同缩进量的若干语句组成
if、elif、else语句的最后都有冒号 :
一旦某个表达式成立,Python就会执行它后面对应的代码块;如果所有表达式都不成立,那就执行 else 后面的代码块;如果没有 else 部分,就什么也不执行。
执行过程最简单的就是第一种形式------只有一个 if 部分。如果表达式成立(真),就执行后面的代码块;如果表达式不成立(假),就什么也不执行。
对于第二种形式,如果表达式成立,就执行 if 后面紧跟的代码块1;如果表达式不成立,就执行 else 后面紧跟的代码块2。
第三种形式,Python会从上到下逐个判断表达式是否成立,一旦遇到某个表达式不成立,就执行else后面紧跟的语句块;此时,剩下的代码就不再执行了,不管后面的表达式是否成立。如果所有的表达式都不成立,就执行 else 后面的代码块。
总结:不管有多少分支,都只能执行一个分支,或者一个也不执行,不能同时执行多个分支。
示例一:
1 # 使用第一种选择结构判断用户是否符合条件
2 age = int(input("请输入你的年龄:"))
3 if age < 18:
4 print("未成年不得使用该软件")
5
6 # 不属于if的代码块
7 print("该软件使用中")
结果1:
请输入你的年龄:16
未成年不得使用该软件
该软件使用中
结果2:
请输入你的年龄:20
该软件使用中
从以上结果可以看出,如果输入的年龄小于18,那么就执行 if 后面的代码块;如果输入的年龄大于18,就不执行 if 后面的代码块。这里的代码块是指缩进四个空格的语句:print("未成年不得使用该软件")
示例二:
1 import sys
2 age = int(input("请输入你的年龄:"))
3
4 if age < 18:
5 print("未成年不得使用该软件")
6 sys.exit()
7 else:
8 print("符合年龄,可以使用该软件")
9 print("但是不要沉迷软件,合理安排时间")
10
11 # 不属于if的代码块
12 print("该软件使用中")
结果1:
请输入你的年龄:15
未成年不得使用该软件
结果2:
请输入你的年龄:36
符合年龄,可以使用该软件
但是不要沉迷软件,合理安排时间
该软件使用中
sys 模块的 exit() 函数用于退出程序
示例三:
1 height = float(input("请输入你的身高(米):"))
2 weight = float(input("请输入你的体重(千克):"))
3 bmi = weight / (height * weight) # 计算BMI指数
4
5 if bmi < 18.5:
6 print("BMI指数为:" + str(bmi))
7 print("体重过轻")
8 elif bmi >= 18.5 and bmi < 24.9:
9 print("BMI指数为:" + str(bmi))
10 print("正常范围,注意保持")
11 else:
12 print("BMI指数为:" + str(bmi))
13 print("肥胖")
结果:
请输入你的身高(米):168
请输入你的体重(千克):51
BMI指数为:0.005952380952380952
体重过轻
if else 如何判断表达式是否成立:
if 和 elif 后面的 “表达式” 的形式是很自由的,只要表达式有一个结果,不管这个结果是什么类型,Python都能判断它是 “真” 还是 “假”;
布尔类型(bool)只有两个值,分别是 True 和 False ,Python会把 True 当作 “真” ,把 False 当作 ”假“。
对于数字,Python 会把 0 和 0.0 当做“假”,把其它值当做“真”
对于其它类型,当对象为空或者为 None 时,Python 会把它们当做“假”,其它情况当做真。比如,下面的表达式都是不成立的:
"" #空字符串
[ ] #空列表
( ) #空元组
{ } #空字典
None #空值
示例:
1 # if elif 判断各种类型的表达式:
2 a = False
3 if a:
4 print("a是True")
5 else:
6 print("a是Flase")
7
8 n = 0
9 if n:
10 print("n不是零值")
11 else:
12 print("n是零值")
13
14 s = " "
15 if s:
16 print("s不是空字符串")
17 else:
18 print("s是空字符串")
19
20 l = []
21 if l:
22 print("l不是空列表")
23 else:
24 print("l是空列表")
25
26 d = {}
27 if d:
28 print("d不是空字典")
29 else:
30 print("d是空字典")
31
32 def func():
33 print("函数被调用")
34
35 if func():
36 print("func()返回值不是空")
37 else:
38 print("func()返回值为空")
结果:
a是Flase
n是零值
s不是空字符串
l是空列表
d是空字典
函数被调用
func()返回值为空
说明:对于没有 return 语句的函数,返回值为空,也即 None。