Python的if分支结构,超简单!
分支结构是程序选择判断,从而进行更复杂操作的基础结构。Python程序中的分支结构,主要有if语句建立。
1.判断条件及组合
程序中的判断最常见的是使用操作关系符判断两个对象的关系,并据此得到True或者False的返回结果在决定分支方向。因此在学习if分支前,我们需要先学习一下Python中的关系操作符。
简单演示如下:
>>> 1 > 2
False
>>> 1 < 2
True
>>> 1 <= 2
True
>>> 1 >= 2
False
>>> 1 == 1
True
>>> 1 != 1
False
>>> 0 == False#0和False是等价的
True
>>> 1 == True#任何非0和非空的类型都是True
True
>>> "1" < "2"#字符串的比较大小是按照ASCII码来比较的
True
>>> "Python" < "python"#P的ASCII码比p的小
True
>>> "1" == "1"#相同字符判断为True
True
字符串是逐位比较,两个字符串第一位字符的ASCII码谁大,字符串就大,不再比较后面的;第一个字符相同就比第二个字符串,以此类推,需要注意的是空格的ascii码是32,空(null)的ascii码是0。
Python使用not、and、or保留字对条件进行逻辑运算和组合。
not表示单个条件的否关系,即某个条件为True,则not True为False,反之亦然;and表示多个条件的与关系,即只有所有的条件都为True时,and所连接的整个表达式才为True,否则都为False;or表示多个条件的或关系,即只要有一个条件为True,则or所连接的整个表达式就是True。
演示如下:
>>> not 1
False
>>> False and True and True
False
>>> False or True or False
True
2.单分支结构
用if保留字引导的语句建立。使用方法如下:
If <判断表达式>:
<语句块>
程序根据判断表达式的结果,即True或是False,来决定语句块是否要执行。如果结果为True,则执行语句块,否则不执行。
(程序演示较为复杂,均默认采用IDLE编辑器演示)
演示如下:
if 1:
print("第一条if语句被执行了")
if 0:
print("第二条if语句被执行了")
#输出结果只有第一条if语句的语句块内容
第一条if语句被执行了
3.二分支结构
二分支结构是指两个分支必定执行其中一个,由保留字if和else建立。使用方法如下:
If <判断表达式>:
<语句块1>
else:
<语句块2>
当判断表达式中的结果为True时,语句块1会被执行,语句块2不会被执行;当判断表达式中的结果为False时,语句块2会被执行,语句块1不会被执行。
演示如下:
a = eval(input("请输入0或者1:"))
if a:
print("第一条if语句被执行了")
else:
print("第二条if语句被执行了")
#输入0时,输出结果为
请输入0或者1:0
第二条if语句被执行了
#输入1时,输出结果为
请输入0或者1:1
第一条if语句被执行了
二分支结构还有一种非常简洁的书写方式,适合语句块1和语句块2都是非常简单的表达式时使用,使用方法如下。
<表达式1> if <条件> else <表达式2>
演示如下:
a = eval(input("请输入一个数字:"))
take = "" if a%2 else "不"
print("这个数字{}是一个奇数".format(take))
#输入1时
请输入一个数字:1
这个数字是一个奇数
#输入2时
请输入一个数字:2
这个数字不是一个奇数
4.多分支结构
在程序运行过程中,可能并不只有两种情况,因此单分支结构和二分支结构显得不够灵活。运用elif保留字即可应对程序中更加复杂的情况,使用方法如下:
if <>:
<>
elif <>:
<>
…
else:
<>
其中,你可以添加任意数量的elif分支。演示代码如下:
a = eval(input("请输入成绩:"))
if a < 60:
print("对不起,你没有及格")
elif a < 75:
print("恭喜及格了,但只是及格")
elif a < 90:
print("厉害,达到良好水平")
else:
print("太棒了,你优秀!")
在多分支结构中,elif的数量由自己的实际需要增减。且对else没有强制要求,可以不写。当未写else时,多分支结构最后的执行参考单分支结构。