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。

 

posted @ 2022-08-05 18:40  南城古  阅读(1321)  评论(0编辑  收藏  举报