【Python】35个经典案例:吃透Python中的if条件语句~
共 2141字,需浏览 5分钟
·
2021-10-26 00:08
公众号:尤而小屋
作者:Peter
编辑:Peter
在生活中总是会听到这样的话:
如果我上课认真一点,英语肯定可以及格 如果我努力锻炼,肯定可以减到100斤 如果我技术过硬,早就进大厂了…..
其实这就是条件语句的应用:假设有某个条件成立,便会产生怎样的结果。
![](https://filescdn.proginn.com/9274151c071f2d0fdfbde20f6255bfa4/e93cb650de9c6703b1024842efeb8d65.webp)
剪刀石头布
通过一个剪刀石头布的游戏来引出if条件语句:
import random # 随机模块
player = int(input("请输入(0-剪刀 1-石头 2-布)")) # 玩家输入
computer = random.randint(0,2) # 0-2之间随机产生一个数作为电脑的输入
if (player == 0 and computer == 2) or (player == 1 and computer == 0) or (player == 2 and computer == 1):
print("恭喜玩家你赢了") # 加上小括号
elif (player == 0 and computer == 0) or (player == 1 and computer == 1) or (player == 2 and computer == 2):
print("平局")
else:
print("很可惜,你输了")
![](https://filescdn.proginn.com/ddf557f854193b34bd134b7c01220266/8025ddcbeea5770d79ecc7cc049e1ab8.webp)
![](https://filescdn.proginn.com/ddf557f854193b34bd134b7c01220266/8025ddcbeea5770d79ecc7cc049e1ab8.webp)
因为电脑的输入是随机产生的,所以可能产生不同的结果。
Python条件控制语句
Python 中的 条件控制语句 (Conditional control statement)
是通过一条或者多条语句的执行结果(True 或者 False),来决定执行的代码逻辑 。
关键词:它包含 if
、elif
、else
关键字, Python 中是不存在else if
的写法,只存在 elif 这种写法。冒号很重要:每句判断语句使用冒号 - :
结尾,使用缩进
划分语句块,相同缩进数的语句组成一个语句块。3种条件控制语句:if 、if - else 、if - elif (多个elif) - else
if 语句
if 语句,仅有一个判断条件,如果条件成立(为 True),则执行判断语句后带缩进的代码逻辑,否则不执行。
1、语法格式:
if expression:
statements...
看下具体的执行流程图:
![](https://filescdn.proginn.com/77acf74f7e1c41682461a9812039e239/46e95a2eb9492b7b29641bab605e008b.webp)
看一个具体的案例:我们定义了一个变量a,刚好满足if语句的条件,那么执行打印恭喜你
![](https://filescdn.proginn.com/27822e6ca25ef6875c55aaa60ace0bd9/6ee090cb2f37ea632d97eaa2cbc2ec6d.webp)
if - else 语句
if expression
statements...
else:
statements...
if - else 语句,仅有一个判断条件,与 if 语句的区别就在于:
如果if后面的条件成立(为 True),则执行 if 判断语句后带缩进的代码逻辑,
否则的话,便执行 else 后带缩进的代码逻辑。
看下具体的执行流程图:
![](https://filescdn.proginn.com/56abcd0f4137965191b876f495c1da57/4a586ba3d00af0b681f844cdf8a98468.webp)
看一个具体的例子:
定义变量a=2,不满足if条件语句 执行else后面缩进的代码块
![](https://filescdn.proginn.com/e6370aabd2227728c0c02af443ee797a/80b61f9e7a24208305040b052a13a0bf.webp)
if - elif - else 语句
if expression:
statements...
elif expression:
statements...
# 可以有1条或多条elif语句
else:
statement...
在使用判断语句时,我们有时需要对两个甚至是多个条件进行判断,并执行对应的代码逻辑,这时以上两种语句就无法满足我们的需求。值得注意的是,if - elif - else 语句中,仅有一个条件成立后,就会退出当前整个判断语句,简单来说,这三条判断路径,只会走其中一条。
这种语句需要注意的点:
存在多个条件判断语句,if为真则执行if后面的语句 elif如果有一个为真,则执行该elif,后面代码块不执行了 如果if和elif都不满足,则执行else语句
看下具体的执行流程图:
![](https://filescdn.proginn.com/16add951dd434d74f1442467c2be2df2/d31548b319f4d6e0f8dd6bdd745a70c8.webp)
具体的案例如下:
![](https://filescdn.proginn.com/0f57d193d717d622d03025ff4cd06e4d/b81491167e3993b80f682bc3be33afaa.webp)
![](https://filescdn.proginn.com/e2e122c2ddbddabd9a20818b2213fa73/a7f865b73fc6f98579a2828c174373c4.webp)
if…else...语句嵌套
多个if语句同时使用。通过一个客人是否喝的是美式加糖咖啡的例子来说明:
1、同时满足美式和“是”(加糖)的条件
![](https://filescdn.proginn.com/75af8f5963639dbdaa025627aebe10ac/ac85c1aed50eade02d9a751fc0cf4d2a.webp)
2、满足美式,但是不加糖“否”
不满足加糖的时候(否),进入第一个else中
![](https://filescdn.proginn.com/58900f05deb19bb59843d6fa8e5d2173/c69fc8931ef915bcd388c4ba6eecd117.webp)
3、一开始就不满足“美式”
![](https://filescdn.proginn.com/299e41fa0260a297f0410eb3f997566b/722a1848e21141ba7aa9661affbb3246.webp)
三元操作符
if条件语句可以和三元操作符配合使用。其实就是将多个if...else...条件语句写到一行代码中:
X = A if B else C
如果B条件作为真,输出X=A 如果B为假,那么输出X=C
![](https://filescdn.proginn.com/fc7f7dd8c53d665756afe28ebbed65c8/037d358620be95feee0d2e4e537a2702.webp)
上面语句的意思是:如果满足条件x>y,则将x赋值给a,否则(x
现在是x
Python列表推导式使用if语句
找出50以内能够被5整除的数字,两种方法来实现:
列表推导式 for循环
![](https://filescdn.proginn.com/bca5474229f743aa8cb7a134f1b3ed4c/41db6621cf71c6e13798fa055a26e09b.webp)
Python中的逻辑运算符
运算符 | 说明 |
---|---|
not | 逻辑“非” |
and | 逻辑“与” |
or | 逻辑“或” |
![](https://filescdn.proginn.com/5ce401b8db30aa4c6611b3d0ad81e70e/0184071e49ca091e864d31065a9e23a0.webp)
Python操作运算符
Python中常用的基础运算符可参照下表:
操作符 | 说明 |
---|---|
< | 小于 |
<= | 小于或等于 |
> | 大于 |
>= | 大于或等于 |
== | 等于 |
!= | 不等于 |
in / not in | 成员运算符 |
is / not is | 身份运算符 |
举几个例子说明基础运算符的使用:
![](https://filescdn.proginn.com/d6529005536e9cdd67c0a7dbe2ea1984/ba7f91ec68b148b607f3774b9b0015ec.webp)
![](https://filescdn.proginn.com/a015808060aef1342f3ff86c85512288/e3857933fb8da3a98ca51ad032341671.webp)
![](https://filescdn.proginn.com/b7633cee5163c150629ea1e3e23d92be/7d0cd02c2ef4a06dbf3bbed92674eeb7.webp)
![](https://filescdn.proginn.com/f1679dd840a047d2be510620326f4991/2054b7245801b1a7c26f504bf0551450.webp)
Python中特殊对象
Python中的布尔值(bool)分为True和Fool。在if判断中如果条件为真True,则执行if后面缩进的代码块。有些特殊对象的布尔值为fool:
对象 | 布尔值 |
---|---|
None | False |
所有值为零的数(整数/复数/浮点数) | False |
空字符串 | False |
空列表 | False |
空元组 | False |
空字典 | False |
空集合 | False |
下面的多个例子表示的是:当本身的布尔值为False,加上not之后变成True,然后执行print语句
![](https://filescdn.proginn.com/3d97ece774f9ae244f58d1b53affb643/aa205de74300cc551735bce7af69d282.webp)
![](https://filescdn.proginn.com/67eddb74de549f605ae9c7ab3d25b49a/2cacd1c92ffc8c3e513a4967d6691787.webp)
通过否定的形式,我们可以精简自己的代码:
![](https://filescdn.proginn.com/f395c21b5c17e5b2ac6ea0d853023f7e/a3a7e136f27e1abaf6b5ce2982acc146.webp)
坐飞机
坐上飞机一般需要两个主要步骤:
购买机票 通过安检
def fly():
ticket = int(input("是否购买机票(0-未购买 1-购买)"))
safety = int(input("是否通过安检(0-未通过 1-通过)"))
if ticket == 1 and safety == 1:
print("请登机")
elif ticket == 1 and safety != 1:
print("未通过安检,不能登机")
else:
print("没有机票不能登机")
if __name__ == "__main__":
fly()
![](https://filescdn.proginn.com/361260de418ae31febd38bcb1dd214fe/40a84923eae76cf3d4ac3ff87708fede.webp)
![](https://filescdn.proginn.com/1db9a024cec32bf1f1ac337d6d2c0612/ee19335e23f20985c0f65f7b6c962349.webp)
总结
使用if条件控制语句时,可根据实际需求,灵活搭配使用基本运算符与逻辑运算符。 平时的if条件语句作为嵌套的多个if语句 需要注意条件控制语句后的冒号 :
,还有就是python中的代码块缩进问题。if - else 语句可理解为二选其一,if - elif - else 则为三选其一,包含多个 elif 则为 N 选其一,其中 else 并非必须选项。 使用逻辑运算符时,其优先级需要注意,加上小括号 ()
的语句优先级最高,() > not > and > or
。当我们不清楚语句执行的优先级,最好的解决办法就是添加上小括号
往期精彩回顾 本站qq群554839127,加入微信群请扫码: