Pythonifelse条件语句详解
我们看到的代码都是顺序执⾏的,也就是先执⾏第1条语句,然后是第2条、第3条……⼀直到最后⼀条语句,这称为顺序结构。
但是对于很多情况,顺序结构的代码是远远不够的,⽐如⼀个程序限制了只能成年⼈使⽤,⼉童因为年龄不够,没有权限使⽤。这时候程序就需要做出判断,看⽤户是否是成年⼈,并给出提⽰。
在 Python 中,可以使⽤ if else 语句对条件进⾏判断,然后根据不同的结果执⾏不同的代码,这称为选择结构或者分⽀结构。
Python 中的 if else 语句可以细分为三种形式,分别是 if 语句、if else 语句和 if elif else 语句,它们的语法和执⾏流程如下图所⽰。
以上三种形式中,第⼆种和第三种形式是相通的,如果第三种形式中的 elif 块不出现,就变成了第⼆种形式。另外,elif 和 else 都不能单独使⽤,必须和 if ⼀起出现,并且要正确配对。
对语法格式的说明:
“表达式”可以是⼀个单⼀的值或者变量,也可以是由运算符组成的复杂语句,形式不限,只要它能得到⼀个值就⾏。不管“表达式”的结果是什么类型,if else 都能判断它是否成⽴(真或者假)。
“代码块”由具由相同缩进量的若⼲条语句组成。
if、elif、else 语句的最后都有冒号:,不要忘记。
⼀旦某个表达式成⽴,Python 就会执⾏它后⾯对应的代码块;如果所有表达式都不成⽴,那就执⾏ else 后⾯的代码块;如果没有 else 部分,那就什么也不执⾏。
执⾏过程最简单的就是第⼀种形式——只有⼀个 if 部分。如果表达式成⽴(真),就执⾏后⾯的代码块;如果表达式不成⽴(假),就什么也不执⾏。
对于第⼆种形式,如果表达式成⽴,就执⾏ if 后⾯紧跟的代码块1;如果表达式不成⽴,就执⾏ else 后⾯紧跟的代码块2。
对于第三种形式,Python 会从上到下逐个判断表达式是否成⽴,⼀旦遇到某个成⽴的表达式,就执⾏后⾯紧跟的语句块;此时,剩下的代码就不再执⾏了,不管后⾯的表达式是否成⽴。如果所有的表达式都不成⽴,就执⾏ else 后⾯的代码块。
总起来说,不管有多少个分⽀,都只能执⾏⼀个分⽀,或者⼀个也不执⾏,不能同时执⾏多个分⽀。
【实例1】使⽤第⼀种选择结构判断⽤户是否符合条件:
age = int( input("请输⼊你的年龄:") )
if age < 18 :
print("你还未成年,需要复制链接领取python资料")
print("复制这条链接jq.qq/?_wv=1027&k=pDEhzaCh")
#该语句不属于if的代码块
print("资料领取中...")
运⾏结果1:
请输⼊你的年龄:16↙
你还未成年,需要复制链接领取python资料
复制这条链接jq.qq/?_wv=1027&k=pDEhzaCh
资料领取中...
运⾏结果2:
请输⼊你的年龄:24↙
资料领取中...
从运⾏结果可以看出,如果输⼊的年龄⼩于 18,就执⾏ if 后⾯的语句块;如果输⼊的年龄⼤于等于 18,就不执⾏ if 后⾯的语句块。这⾥的
语句块就是缩进四个空格的两个 print() 语句。
【实例2】改进上⾯的代码,年龄不符合时退出程序:
import sys
age = int( input("请输⼊你的年龄:") )
if age < 18 :
print("警告:你还未成年,不能使⽤该软件!")
print("未成年⼈应该好好学习,读个好⼤学,报效祖国。")
else:
print("你已经成年,可以使⽤该软件。")
print("时间宝贵,请不要在该软件上浪费太多时间。")
print("软件正在使⽤中...")
运⾏结果1:
请输⼊你的年龄:16↙
警告:你还未成年,不能使⽤该软件!
未成年⼈应该好好学习,读个好⼤学,报效祖国。
运⾏结果2:
请输⼊你的年龄:20↙
你已经成年,可以使⽤该软件。
时间宝贵,请不要在该软件上浪费太多时间。
软件正在使⽤中...
sys 模块的 exit() 函数⽤于退出程序。
【实例3】判断⼀个⼈的⾝材是否合理:
height = float(input("输⼊⾝⾼(⽶):"))
weight = float(input("输⼊体重(千克):"))
bmi = weight / (height * height) #计算BMI指数
if bmi<18.5:
print("BMI指数为:"+str(bmi))
print("体重过轻")
elif bmi>=18.5 and bmi<24.9:
print("BMI指数为:"+str(bmi))
print("正常范围,注意保持")
elif bmi>=24.9 and bmi<29.9:
print("BMI指数为:"+str(bmi))
print("体重过重")
else:
print("BMI指数为:"+str(bmi))
print("肥胖")
运⾏结果:
输⼊⾝⾼(⽶):1.7↙
输⼊体重(千克):70↙
BMI指数为:24.221453287197235
正常范围,注意保持
需要强调的是,Python 是⼀门⾮常独特的编程语⾔,它通过缩进来识别代码块,具有相同缩进量的若⼲⾏代码属于同⼀个代码块,所以你不能胡乱缩进,这样很容易导致语法错误。更多关于缩进的内容请转到《Python if else对缩进的要求》。
在其他语⾔中(如 C语⾔、C++、Java 等),选择结构还包括 switch 语句,也可以实现多重选择,但是在 Python 中没有 switch 语句,所以当要实现多重选择的功能时,只能使⽤ if else 分⽀语句。
if else 如何判断表达式是否成⽴
上⾯说过,if 和 elif 后⾯的“表达式”的形式是很⾃由的,只要表达式有⼀个结果,不管这个结果是什么类型,Python 都能判断它是“真”还
是“假”。
布尔类型(bool)只有两个值,分别是 True 和 False,Python 会把 True 当做“真”,把 False 当做“假”。
对于数字,Python 会把 0 和 0.0 当做“假”,把其它值当做“真”。
对于其它类型,当对象为空或者为 None 时,Python 会把它们当做“假”,其它情况当做真。⽐如,下⾯的表达式都是不成⽴的:"" #空字符串
[ ] #空列表
( ) #空元组
{ } #空字典switch语句具体例子
None #空值
【实例】if elif 判断各种类型的表达式:
b = False
if b:
print('b是True')
else:
print('b是False')
n = 0
if n:
print('n不是零值')
else:
print('n是零值')
s = ""
if s:
print('s不是空字符串')
else:
print('s是空字符串')
l = []
if l:
print('l不是空列表')
else:
print('l是空列表')
d = {}
if d:
print('d不是空字典')
else:
print('d是空字典')
def func():
print("函数被调⽤")
if func():
print('func()返回值不是空')
else:
print('func()返回值为空')
运⾏结果:
b是False
n是零值
s是空字符串
l是空列表
d是空字典
函数被调⽤
func()返回值为空
说明:对于没有 return 语句的函数,返回值为空,也即 None。
结尾福利
或者加⼊博主Python交流圈(QQ:1049600759)免费下载。
本⽂的⽂字及图⽚来源于⽹络加上⾃⼰的想法,仅供学习、交流使⽤,不具有任何商业⽤途,版权归原作者所有,如有问题请及时以作处理。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论