python基础——条件判断

本文最后更新于:1 年前

(一)条件判断

根据条件的成立情况决定执行哪些代码。

(二)if条件判断

1. if语句格式:

if 条件表达式:

if成立后执行代码块

elif 条件表达式:

elif成立后执行代码块

elif 条件表达式:

elif成立后执行代码块

elif 条件表达式:

elif成立后执行代码块

......

else:

else成立后执行代码块

2. if条件语句的限制:

  • 代码块:

    代码块是一组代码作为的一个整体,其执行的选择是统一的(要么执行代码块,要么全部跳过),python作为解释性语言,对一个代码块不是逐个语句读取就解释的,而是读完一个代码块后统一解释一个代码块。

    代码块是一种为代码分组的机制,其作用是组织代码。

    代码块以缩进开始,直至代码恢复到之前的缩进级别时结束,该范围为代码块的作用域,一旦退出代码块范围就退出了作用域范围。

    if判断条件为真时进入代码块,为假时跳过整个代码块。

  • 多条件判断:

    if语句中没有switch语句,因此只能使用elif作为多条件判断。

    每次if语句只可能执行一个分支或者一个都不执行。

    多个条件符合时,由于if语句是逐个分支判断的,所以只可能执行最上方的满足条件的分支。

  • 嵌套:

    将一个if语句嵌入到某个分支的代码块中即可完成嵌套。

    python支持任意层次的if语句嵌套。

3. 条件表达式:

可以是一个单一的值或者变量,也可以是由运算符组成的复杂语句,形式不限。

整体作为一个布尔值被使用,是True和False的一个,判断可以等同于判断其真假。

4. 三目运算:

格式:exp1 if condition else exp2,exp1和exp2是两个表达是,condition是判断条件。

如果condition为真,执行exp1,如果为假就执行exp2

三目运算允许嵌套,嵌套内容相当于在else之后再进行一个三目运算。

(三)条件表达式的运算符

1. 比较运算符:

包括等于运算符==,不等于运算符!=,大于运算符>,小于运算符<,大于等于运算符>=、小于等于运算符<=六个基本运算符,另外还有is in两个特殊比较运算符

基本比较逻辑不再赘述(简单易懂),注意一下字符串的大小比较是一个个字符的比较即可。

如果想对汉字等特殊字符比较,更换编码格式即可(详见之前的博客)。

另外,注意Python允许范围比较,即用一个区间判断作为表达式。

  • is比较运算符:

    is是Python身份运算符,用于判断两个对象的标识符是否相等(注意,Python中一切皆对象)。

    实际上,is是用于比较左右两方的对应存储位置是否相同。

    注意:None对象是一个单例类的实例,具有唯一的标识号,因此判断对象是否为None时,使用:

    对象 is None判断其是否为None。

    is的否定一般使用is not来表示,不使用not 对象 is .......来表示。

  • in比较运算符:

    in是Python的成员检测运算符,用于判断某个元素是否属于某个序列,序列可以是各种集合,包括字符串。

    元素不一定必须是单个的,可以是另一个集合构成的元素,例如可以判断一个字符串是否是另一个字符串的子串。

2. 逻辑运算符:

包括与运算符and,或运算符or和非运算符not,其中运算优先级not>and>or,如果需要改变优先级,使用**()**来修改运算优先级。

  • and(逻辑与):

    and可以对运算符两侧的表达式进行与运算,只有两侧的值均为True时,才会返回True,否则均返回False。

    注意:与运算中,如果第一个表达式已经为False,则直接返回False,不会再判断第二个表达式。

  • or(逻辑或):

    or可以对运算符两侧的表达式进行或运算,只有两侧的值均为False时,才会返回False,否则均返回True。

    注意:或运算中,如果第一个表达式已经为True,则直接返回True,不会再判断第二个表达式。

  • not(逻辑非):

    not可以对运算符右侧的表达式进行非运算,使其最后的布尔值取反。

注意:对非布尔值也可以进行与或运算,Python会将其当做布尔值运算,最终会返回原值。

与运算:如果第一个值是True,返回第二个值;如果第一个值是False,直接返回第一个值。

或运算:如果第一个值是False,返回第二个值;如果第一个值是True,直接返回第一个值。

(四)运行样例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
value = 25
while(value >= 10):
if value > 20 :
print("value > 20")
value = 15
elif 15 <= value <= 20:
print("15 <= value <= 20")
value = 10
else:
print("value <15")
value = 5
#运行结果:
# value > 20
# 15 <= value <= 20
# value <15

val = 7
if val>5 and val <8:
print("val=%d"%val)
elif val>=8 and val<10:
print("val >=8, and val=%d"%val)
else:
print("val is no in range")
# 运行结果:
# val=10:
# val is no in range
# val =8:
# val >=8, and val=8
# val =7:
# val=7

r1 = 2 and 3
r2 = 0 and 4
r3 = 2 or 3
r4 = 0 or 4
print(r1,r2,r3,r4,sep='\n')
#运行结果:
# 3
# 0
# 2
# 4

更多的运行在实际中检验即可。


python基础——条件判断
https://github.com/xiaohei07/xiaohei07.github.io/2023/07/11/python基础——条件判断/
作者
07xiaohei
发布于
2023年7月11日
许可协议