Python if else条件语句形式详解


Posted in Python onMarch 24, 2022

我们都知道代码都是顺序执行的,也就是先执行第1条语句,然后是第2条、第3条……一直到最后一条语句,这称为顺序结构。

但是对于很多情况,顺序结构的代码是远远不够的,比如一个程序限制了只能成年人使用,儿童因为年龄不够,没有权限使用。这时候程序就需要做出判断,看用户是否是成年人,并给出提示。

在 Python 中,可以使用 if else 语句对条件进行判断,然后根据不同的结果执行不同的代码,这称为选择结构或者分支结构。

Python 中的 if else 语句可以细分为三种形式,分别是 if 语句、if else 语句和if elif else 语句,它们的语法和执行流程如表1所示。

 if else 分支语句的三种形式:

if 表达式语法格式: 代码块 if 语句执行流程    

Python if else条件语句形式详解

if 表达式语法格式:代码块 1 else: 代码块 2 if else语句执行流程    

Python if else条件语句形式详解

if 表达式语法格式 1:代码块 1 elif 表达式 2: 代码块 2 elif 表达式 3: 代码块 3 …//其它eli语句 else: 代码块 n if elif else语句执行流程    

Python if 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("你还未成年,建议在家人陪同下使用该软件!")
    print("如果你已经得到了家长的同意,请忽略以上提示。")
#该语句不属于if的代码块
print("软件正在使用中...")

运行结果1:

请输入你的年龄:16↙
你还未成年,建议在家人陪同下使用该软件!
如果你已经得到了家长的同意,请忽略以上提示。
软件正在使用中...

运行结果2:

请输入你的年龄:24↙
软件正在使用中...

从运行结果可以看出,如果输入的年龄小于 18,就执行 if 后面的语句块;如果输入的年龄大于等于 18,就不执行 if 后面的语句块。这里的语句块就是缩进四个空格的两个print() 语句。

【实例2】改进上面的代码,年龄不符合时退出程序:

import sys
age = int( input("请输入你的年龄:") )
if age < 18 :
    print("警告:你还未成年,不能使用该软件!")
    print("未成年人应该好好学习,读个好大学,报效祖国。")
    sys.exit()
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 是一门非常独特的编程语言,它通过缩进来识别代码块,具有相同缩进量的若干行代码属于同一个代码块,所以你不能胡乱缩进,这样很容易导致语法错误。

在其他语言中(如 C语言、C++、Java 等),选择结构还包括 switch 语句,也可以实现多重选择,但是在 Python 中没有 switch 语句,所以当要实现多重选择的功能时,只能使用 if else 分支语句。

if else 如何判断表达式是否成立?

上面说过,if 和 elif 后面的“表达式”的形式是很自由的,只要表达式有一个结果,不管这个结果是什么类型,Python 都能判断它是“真”还是“假”。

布尔类型(bool)只有两个值,分别是 TrueFalse,Python 会把 True 当做“真”,把 False 当做“假”。

对于数字,Python 会把 0 和 0.0 当做“假”,把其它值当做“真”。

对于其它类型,当对象为空或者为 None 时,Python 会把它们当做“假”,其它情况当做真。比如,下面的表达式都是不成立的:

""  #空字符串
[ ]  #空列表
( )  #空元组
{ }  #空字典
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 if else条件语句形式详解的文章就介绍到这了,更多相关Python if else条件语句内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python3抓取中文网页的方法
Jul 28 Python
python实现给微信公众号发送消息的方法
Jun 30 Python
Python画柱状统计图操作示例【基于matplotlib库】
Jul 04 Python
Django基础知识与基本应用入门教程
Jul 20 Python
python3使用腾讯企业邮箱发送邮件的实例
Jun 28 Python
TensorFlow基于MNIST数据集实现车牌识别(初步演示版)
Aug 05 Python
基于pytorch的保存和加载模型参数的方法
Aug 17 Python
简单了解python 生成器 列表推导式 生成器表达式
Aug 22 Python
python 二维矩阵转三维矩阵示例
Nov 30 Python
python str字符串转uuid实例
Mar 03 Python
Python爬虫自动化爬取b站实时弹幕实例方法
Jan 26 Python
pandas中关于apply+lambda的应用
Feb 28 Python
python中的getter与setter你了解吗
Mar 24 #Python
Python编程中内置的NotImplemented类型的用法
Mar 23 #Python
pandas进行数据输入和输出的方法详解
Mar 23 #Python
基于Python编写简易版的天天跑酷游戏的示例代码
Python中的嵌套循环详情
Mar 23 #Python
python装饰器代码解析
Mar 23 #Python
基于Python实现将列表数据生成折线图
You might like
如何使用PHP往windows中添加用户
2006/12/06 PHP
php正则提取html图片(img)src地址与任意属性的方法
2017/02/08 PHP
jQuery 关于伪类选择符的使用说明
2013/04/24 Javascript
JS控制文本框textarea输入字数限制的方法
2013/06/17 Javascript
JS小功能(onmouseover实现选择月份)实例代码
2013/11/28 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
2014/04/17 Javascript
使用微信内置浏览器点击下拉框出现页面乱跳转现象(iphone),该怎么办
2016/01/04 Javascript
jQuery+css实现炫目的动态块漂移效果
2016/01/28 Javascript
Node.js 条形码识别程序构建思路详解
2016/02/14 Javascript
JS对象是否拥有某属性如何判断
2017/02/03 Javascript
vue-cli构建项目使用 less的方法
2017/10/04 Javascript
vue基础之事件简写、事件对象、冒泡、默认行为、键盘事件实例分析
2019/03/11 Javascript
JavaScript如何把两个数组对象合并过程解析
2019/10/10 Javascript
[01:05:00]2018国际邀请赛 表演赛 Pain vs OpenAI
2018/08/24 DOTA
Python中的生成器和yield详细介绍
2015/01/09 Python
Python StringIO模块实现在内存缓冲区中读写数据
2015/04/08 Python
浅谈Python中chr、unichr、ord字符函数之间的对比
2016/06/16 Python
python基础教程之匿名函数lambda
2017/01/17 Python
Python插件机制实现详解
2020/05/04 Python
使用OpenCV对车道进行实时检测的实现示例代码
2020/06/19 Python
一款基于css3和jquery实现的动画显示弹出层按钮教程
2015/01/04 HTML / CSS
Css3新特性应用之形状总结
2016/12/08 HTML / CSS
PREMIUM-MALL法国:行李、箱包及配件在线
2019/05/30 全球购物
Foot Locker加拿大官网:美国知名运动产品零售商
2019/07/21 全球购物
乌克兰设计师和品牌的服装:Love&Live
2020/04/14 全球购物
捷科时代的软件测试笔试题
2015/11/09 面试题
护理自荐信范文
2013/10/05 职场文书
大专自我鉴定范文
2013/10/23 职场文书
单位领导证婚词
2014/01/14 职场文书
办公室员工岗位工作职责
2014/03/10 职场文书
运动会横幅标语
2014/06/17 职场文书
2015年教师节慰问信
2015/03/23 职场文书
大学推普周活动总结
2015/05/07 职场文书
入党后的感想
2015/08/10 职场文书
公司开业的祝贺语大全(60条)
2019/07/05 职场文书
css3 filter属性的使用简介
2021/03/31 HTML / CSS