自学内容网 自学内容网

Python 小高考篇(3)分支语句


本文由Jzwalliser原创,发布在CSDN平台上,遵循CC 4.0 BY-SA协议。
因此,若需转载/引用本文,请注明作者并附原文链接,且禁止删除/修改本段文字。
违者必究,谢谢配合。
个人主页:blog.csdn.net/jzwalliser

在代码中,并非所有语句都需要运行到,大多数情况下只需要执行其中的一部分即可。因此,需要用到分支语句。

关系运算符

关系运算符通过比较而判断命题真假。因而,它们的运算结过要么是“真”,要么是“假”。

>>> 5 == 6
False
>>> 5 > 6
False
>>> 5 < 6
True
>>> 5 >= 5
True
>>> 9 <= 10
True
>>> 3 != 4
True
运算符描述例翻译成人话
==相等5 == 6
>大于5 > 6
<小于5 < 6
>=大于或等于5 >= 5
<=小于或等于9 <= 10
!=不等于3 != 4

当然,可比较的不止整数,还有字符串等。对于字符串,判断相等还是同一个逻辑,但是大于、小于则逻辑不太一样。

条件判断

if语句

英语中if的意思是“如果”,在python中,它决定哪些代码将被运行。

num = 114514
if num % 2 == 0:
    print(num,"是偶数")
if num % 2 == 1:
    print(num,"是奇数")

运行结果:

114514 是偶数

很容易看出来,这是一个判断奇数偶数的程序。114514很明显是个偶数,所以第3行的判断成立,进入第4行并执行,而第5行的判断不成立,所以第6行将不会执行。

if-elif语句

请看这段代码:

num = 12
if num % 2 == 0:
    print(num,"是2的倍数")
if num % 3 == 0:
    print(num,"是3的倍数")

运行结果:

12 是2的倍数
12 是3的倍数

若把第4行的if改为elif会怎样呢?

num = 12
if num % 2 == 0:
    print(num,"是2的倍数")
elif num % 3 == 0:
    print(num,"是3的倍数")

运行结果:

12 是2的倍数

可以注意到,改成elif之后,第5行就没被运行。这是为什么呢?
我们可以把if和紧随其之后的几个elif看作是一个if-elif组。python会从最上面的if开始,判断条件是否满足,满定则执行其所属语句,并跳过同一组中剩下的elif。若不满足,则跳到下一个elif语句中去。

if-elif-else语句

else相当于默认选项。若else以上的ifelif语句的条件均不满足,则else内的语句将被执行。如:

num = int(input())
if num % 8 == 0:
    print(num,"是2、4、8的倍数")
elif num % 4 == 0:
    print(num,"是2、4的倍数")
elif num % 2 == 0:
    print(num,"是2的倍数")
else:
    print(num,"不是2、4、8的倍数")

当输入为13时,结果为:

13 不是2、4、8的倍数

可以复制以上代码到IDLE中,运行一下,体会一下代码的含义。

逻辑运算符

逻辑运算符主要包括and(逻辑与)、or(逻辑或)与not(逻辑非)。优先级:not>and>or

逻辑与

逻辑与是双自运算符,需要在左侧和右侧各放置一个布尔值(即TrueFalse),它可用于判断多个条件是否同时满足。如:

5 == 6
5 == 5 and 6 == 6
5 < 6 and 6 < 7

为了方便理解,可以看一眼真值表:

aba and b
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse

可以注意到,只有当and两侧的值都为True时,最后的运行结果才是True,否则就是False

逻辑或

与逻辑与类似,它也是个双目运算符,但是它是判断两侧是否有任意一个是True。如:

5 == 5 or 6 == 7
5 < 6 or 6 > 7

同样,我们可以着一眼真值表来理解这些话:

aba or b
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

可见,只有当or运算符两侧都是False时,运算结果才是False,否则结果就是True

逻辑非

与前两个不同,逻辑非是个单目运算符,它只接受一个布尔值,并将其取反:

not True
not False
1 == 2
not 1 == 2

这应该比较好理解吧,黑变白白变黑。
看一眼真值表 :

anot a
TrueFalse
FalseTrue

其它数据点类型对应的布尔值

其它数据类型也可以转换为布尔值。所以如果看见while 1之类的语句,不要感觉诧异,这东西等价于while True
若想知道某个数据(如字符串)等价的布尔值,那么可以使用python内置函数bool()

bool("") #空字符串
bool(" ") #空格
bool("\n") #换行符
bool(-1) #负数
bool(0)
bool(1) #正数
bool(114514) #臭数

由此可知,数字0和空字符串相当于False,其它都相当于True

自测

  1. 阅读以下程序:
a,b,c= input().split()
if a + b == c:
    print("Yes")
else:
    print("No")

输入下列哪一项,输出结果为Yes?
A. 5 7 12
B. 1 2 2
C. 2 4 24
D. 1 3 17
【答案】C

  1. 阅读以下程序:
print(1 and (2 or 3) and bool(""),bool("\n") and (0 or 4) and True)

改程序的输出结果为:
A. True False
B. False True
C. True True
D. False False
【答案】B

总结

关系运算符

运算符描述
==相等
>大于
<小于
>=大于或等于
<=小于或等于
!=不等于

注意,判断相等是两个等号==,不要与赋值运算的一个等号弄混了。
条件判断
在分支语句中,按次序一次判断if-elif中是否有任何成立,否则将运行else语句。
逻辑运算符

abnot aa and ba or b
TrueTrueFalseTrueTrue
TrueFalseFalseFalseTrue
FalseTrueTrueFalseTrue
FalseFalseTrueFalseFalse

其它数据点类型对应的布尔值

类型布尔值
空字符串""False
非空字符串"\n"True
0False
其它数字114514True
空值NoneFalse

结尾

好啦,今天的分享就到这里了,记得点赞收藏+关注~


原文地址:https://blog.csdn.net/jzwalliser/article/details/142724687

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!