Python条件判断语句 if

程序在一般情况下是按顺序执行的,就像流水账一样,一条一条从上往下顺序执行。

有时候我们需要根据条件来有选择地执行某些语句,这就要使用到Python的条件判断语句——if。

我们可以通过下图来简单了解条件语句的执行过程。

 

一、if 语句基本形式

语法格式:

1 if 要判断的条件表达式:
2     条件成立时,要做的事情
3     ……

“表达式”可以是一个单一的值或者变量,也可以是由运算符组成的复杂语句,形式不限,只要它能得到一个值就行。

如果 if 条件成立,则执行后面的语句,执行的语句可以有多行,用缩进表示属于同一范围。

注意:代码的缩进为一个 tab 键,或者4个空格,建议使用空格。

在 Python 开发中,Tab 和空格不要混用!

实例:

1 # 1. 定义年龄变量
2 age = 18
3 
4 # 2. 判断是否满 18 岁
5 # if 语句以及缩进部分的代码是一个完整的代码块
6 if age >= 18:
7     print("可以进网吧嗨皮……")
8 print("这句代码什么时候执行?")

Python程序语言指定任何非0和非空(null)值为 true,0 或者 null 为 false。

 

二、操作运算符

if 语句的判断条件可以使用 >(大于)、=(大于等于)、<=(小于等于)等等符号来表示其关系。

下表列出了 if 中常用的操作运算符。

操作符 描述
< 小于
<= 小于或等于
> 大于
>= 大于或等于
== 等于,比较对象是否相等
!= 不等于

 

 

 

 

 

 

 

 

 

三、else 结构语句

在使用 if 判断时,只能做到满足条件时要做的事情。那如果需要在不满足条件的时候,做某些事情,该如何做呢?答案就是使用 else 结构语句。

流程图如下:

语法格式:

1 if 要判断的条件:
2     条件成立时,要做的事情
3     ……
4 else:
5     条件不成立时,要做的事情
6     ……

实例:

1 # 1. 输入用户年龄
2 age = int(input("今年多大了?"))
3 
4 # 2. 判断是否满 18 岁
5 # if 语句以及缩进部分的代码是一个完整的语法块
6 if age >= 18:
7     print("可以进网吧嗨皮……")
8 else:
9     print("你还没长大,应该回家写作业!")

 

四、逻辑运算符

在程序开发中,通常在判断条件时,会需要同时判断多个条件。

只有多个条件都满足,才能够执行后续代码,这个时候需要使用到逻辑运算符。

逻辑运算符可以把多个条件按照逻辑进行连接,变成更复杂的条件。

Python 中的逻辑运算符包括:与 and/或 or/非 not 三种。

 

1. and(与/并且)

条件1 and 条件2

两个条件同时满足,返回 True,只要有一个不满足,就返回 False。

条件1 条件2 结果
成立 成立 成立
成立 不成立 不成立
不成立 成立 不成立
不成立 不成立 不成立

 

 

 

 

 

 

 

实例:

1 age = 100
2 # 要求人的年龄在 0-120 之间
3 if age >= 0 and age <= 120:
4     print("年龄正确")
5 else:
6     print("年龄不正确")

 

2. or(或/或者)

条件1 or 条件2

两个条件只要有一个满足,返回 True,两个条件都不满足,返回 False。

条件1 条件2 结果
成立 成立 成立
成立 不成立 成立
不成立 成立 成立
不成立 不成立 不成立

 

 

 

 

 

 

 

实例:

1 python_score = 50
2 c_score = 50
3 
4 # 要求只要有一门成绩 > 60 分就算合格
5 if python_score > 60 or c_score > 60:
6     print("考试通过")
7 else:
8     print("再接再厉!")

 

3. not(非/不是)

not 条件

条件 结果
成立 不成立
不成立 成立

 

 

 

 

实例:

1 is_employee = True
2 
3 # 如果不是提示不允许入内
4 if not is_employee:
5     print("非公勿入")

 

五、elif 结构语句

在开发中,使用 if 可以判断条件,使用 else 可以处理条件不成立的情况。

但是,如果希望再增加一些条件,条件不同,需要执行的代码也不同时,就可以使用 elif。

由于 python 并不支持 switch 语句,所以多个条件判断,只能用 elif 来实现。

 

语法格式:

 1 if 条件1:
 2     条件1满足执行的代码
 3     ……
 4 elif 条件2:
 5     条件2满足时,执行的代码
 6     ……
 7 elif 条件3:
 8     条件3满足时,执行的代码
 9     ……
10 else:
11     以上条件都不满足时,执行的代码
12     ……

实例:

 1 holiday_name = "平安夜"
 2 
 3 if holiday_name == "情人节":
 4     print("买玫瑰")
 5     print("看电影")
 6 elif holiday_name == "平安夜":
 7     print("买苹果")
 8     print("吃大餐")
 9 elif holiday_name == "生日":
10     print("买蛋糕")
11 else:
12     print("每天都是节日啊……")

不管有多少个分支,都只能执行一个分支,或者一个也不执行,不能同时执行多个分支。

 

六、if 语句的嵌套

elif 的应用场景是:同时判断多个条件,所有的条件是平级的。

在开发中,使用 if 进行条件判断,如果希望在条件成立的执行语句中再增加条件判断,就可以使用 if 的嵌套。

if 的嵌套的应用场景就是:在之前条件满足的前提下,再增加额外的判断。

if 的嵌套的语法格式,除了缩进之外和之前的没有区别。

 

语法格式:

 1 if 条件 1:
 2     条件 1 满足执行的代码
 3     ……
 4     
 5     if 条件 1 基础上的条件 2:
 6         条件 2 满足时,执行的代码
 7         ……    
 8         
 9     # 条件 2 不满足的处理
10     else:
11         条件 2 不满足时,执行的代码
12         
13 # 条件 1 不满足的处理
14 else:
15     条件1 不满足时,执行的代码
16     ……

 

实例:

 1 # 定义布尔型变量 has_ticket 表示是否有车票
 2 has_ticket = True
 3 
 4 # 定义整数型变量 knife_length 表示刀的长度,单位:厘米
 5 knife_length = 20
 6 
 7 # 首先检查是否有车票,如果有,才允许进行 安检
 8 if has_ticket:
 9     print("有车票,可以开始安检...")
10 
11     # 安检时,需要检查刀的长度,判断是否超过 20 厘米
12     # 如果超过 20 厘米,提示刀的长度,不允许上车
13     if knife_length >= 20:
14         print("不允许携带 %d 厘米长的刀上车" % knife_length)
15     # 如果不超过 20 厘米,安检通过
16     else:
17         print("安检通过,祝您旅途愉快……")
18 
19 # 如果没有车票,不允许进门
20 else:
21     print("大哥,您要先买票啊")

 

七、if else 如何判断表达式是否成立

上面说过,if 和 elif 后面的“表达式”的形式是很自由的,只要表达式有一个结果,不管这个结果是什么类型,Python 都能判断它是“真”还是“假”。

布尔类型(bool)只有两个值,分别是 True 和 False,Python 会把 True 当做“真”,把 False 当做“假”。

对于数字,Python 会把 0 和 0.0 当做“假”,把其它值当做“真”。

对于其它类型,当对象为空或者为 None 时,Python 会把它们当做“假”,其它情况当做真。

比如,下面的表达式都是不成立的:

""  #空字符串

[ ]  #空列表

( )  #空元组

{ }  #空字典

None  #空值 

 

实例:

 1 b = False
 2 if b:
 3     print('b是True')
 4 else:
 5     print('b是False')
 6 n = 0
 7 if n:
 8     print('n不是零值')
 9 else:
10     print('n是零值')
11 s = ""
12 if s:
13     print('s不是空字符串')
14 else:
15     print('s是空字符串')
16 l = []
17 if l:
18     print('l不是空列表')
19 else:
20     print('l是空列表')
21 d = {}
22 if d:
23     print('d不是空字典')
24 else:
25     print('d是空字典')
26 def func():
27     print("函数被调用")
28 if func():
29     print('func()返回值不是空')
30 else:
31     print('func()返回值为空')

 

运行结果:

1 b是False
2 n是零值
3 s是空字符串
4 l是空列表
5 d是空字典
6 函数被调用
7 func()返回值为空

 

说明:对于没有 return 语句的函数,返回值为空,也即 None。


 

 

 


 

posted @ 2020-08-05 10:57  小名叫小明  阅读(4547)  评论(0编辑  收藏  举报