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
以上的if
和elif
语句的条件均不满足,则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
逻辑与
逻辑与是双自运算符,需要在左侧和右侧各放置一个布尔值(即True
和False
),它可用于判断多个条件是否同时满足。如:
5 == 6
5 == 5 and 6 == 6
5 < 6 and 6 < 7
为了方便理解,可以看一眼真值表:
a | b | a and b |
---|---|---|
True | True | True |
True | False | False |
False | True | False |
False | False | False |
可以注意到,只有当and
两侧的值都为True
时,最后的运行结果才是True
,否则就是False
。
逻辑或
与逻辑与类似,它也是个双目运算符,但是它是判断两侧是否有任意一个是True
。如:
5 == 5 or 6 == 7
5 < 6 or 6 > 7
同样,我们可以着一眼真值表来理解这些话:
a | b | a or b |
---|---|---|
True | True | True |
True | False | True |
False | True | True |
False | False | False |
可见,只有当or
运算符两侧都是False
时,运算结果才是False
,否则结果就是True
。
逻辑非
与前两个不同,逻辑非是个单目运算符,它只接受一个布尔值,并将其取反:
not True
not False
1 == 2
not 1 == 2
这应该比较好理解吧,黑变白白变黑。
看一眼真值表 :
a | not a |
---|---|
True | False |
False | True |
其它数据点类型对应的布尔值
其它数据类型也可以转换为布尔值。所以如果看见while 1
之类的语句,不要感觉诧异,这东西等价于while True
。
若想知道某个数据(如字符串)等价的布尔值,那么可以使用python内置函数bool()
。
bool("") #空字符串
bool(" ") #空格
bool("\n") #换行符
bool(-1) #负数
bool(0)
bool(1) #正数
bool(114514) #臭数
由此可知,数字0和空字符串相当于False
,其它都相当于True
。
自测
- 阅读以下程序:
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
- 阅读以下程序:
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语句。
逻辑运算符
a | b | not a | a and b | a or b |
---|---|---|---|---|
True | True | False | True | True |
True | False | False | False | True |
False | True | True | False | True |
False | False | True | False | False |
其它数据点类型对应的布尔值
类型 | 布尔值 |
---|---|
空字符串"" | False |
非空字符串"\n" | True |
零0 | False |
其它数字114514 | True |
空值None | False |
结尾
好啦,今天的分享就到这里了,记得点赞收藏+关注~
原文地址:https://blog.csdn.net/jzwalliser/article/details/142724687
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!