python判断语句_详解Python判断语句的使用方法

本篇介绍Python判断语句的使用,主要讨论简单条件语句、多重条件语句和嵌套条件语句,在讲解的每个案例中都配有流程图和代码说明。通过本篇的学习,可以达成如下目标。

● 掌握判断语句的使用规则

● 判断语句流程图的画法

前面我们学习了Python的数据类型和相关知识,现在可以开始编写Python程序了,首先从条件判断开始。

1、 简单if-else语句

例1:要求用户输入两个数,计算两数的和。如果这两个数的和大于100,则输出“两数和大于100”,否则输出“两数和小于100”。

程序要求用户从键盘输入两个整数,求这两个整数的和。如果和大于100,用print语句输出“两数和大于100”,否则输出“两数和小于100”。程序流程图如下:

u=10091428,1238286396&fm=173&app=49&f=JPEG?w=554&h=332&s=798C3472018F654B5CDD10CB0000A0B1图 1 例1流程图

流程图用到了判断框,判断框用于判断两数和结果result的值,并根据判断情况选择不同的分支。类似这样的判断情况,在程序中应用非常广泛,需要对条件进行判断,并根据判断结果,进入不同的分支程序。这种流程称为条件分支流程,其语句结构也称为条件结构。

在Python语言中,条件结构由if—else语句构成,else语句也可以省略。if语句由三部分组成:关键字本身,用于判断结果真假的条件表达式,以及当表达式为真或者非零时执行的代码块。else 语句与if语句搭配使用,如果if语句条件表达式的值为真,则执行if 后面的语句块;如果if语句条件表达式的值为假,则执行else后面的语句块。

if—else语句语法如下:

if 条件表达式:

语句块

else:

语句块

在if—else语句结构中,如果只对if语句条件表达式为真的情况进行处理,else语句可以省略。现在,我们已经了解了Python语言if-else结构的语法,下面探讨一下如何在条件结构中使用条件表达式。

例如:要测试两个整数类型的变量值num1和num2是否相等,可以编写num1 == num2,然后将其放入一个if语句中,如下所示:

u=2853074706,3469969578&fm=173&app=49&f=JPEG?w=640&h=93

如果num1和num2的数值相等,则条件为真,执行if后面的语句块,用print函数输出“两数相等”,否则执行else后面的语句块,用print函数输出“两数不相等”。编写代码时,if和else后面的语句块要缩进对齐。

下面根据图1所示的流程图给出例1的程序代码。

u=290005421,3880737594&fm=173&app=49&f=JPEG?w=640&h=125&s=46C0F11A4B23672446F51CDA000050B2

input函数从标准输入(如键盘)接收用户或设备的输入,input返回的是字符串类型,程序要求输入整数,因此计算两数和时,需要把num1和num2强制转换为整数。最后再判断result的值,根据result的值选择不同的执行路径。

2、 多重if结构语句

例2:编写一个程序,根据用户输入的考试成绩,输出相应的成绩评定信息。成绩大于等于90分输出“优”;成绩大于等于80分小于90分输出“良”;成绩大于等于60分小于80分输出“中”,成绩小于60分输出“差”。

程序的主要功能是对考生的考试成绩进行评定,成绩评定分成优、良、中、差四个档次。成绩大于等于90分为优,大于等于80分小于90分为良,大于等于60分小于80分为中,成绩小于60分为差。用户输入考试成绩后,程序需要对考试成绩进行多次判断,如果考试成绩在90分至100分之间,用print函数输出“优”;如果考试成绩在80分至90分之间,用print函数输出“良”;如果考试成绩在60分至80分之间,用print函数输出“中”;如果考试成绩在60分以下,用print函数输出“差”。程序流程图如下:

u=2374959664,1280187222&fm=173&app=49&f=JPEG?w=554&h=414&s=5A283C62050FC54D5CF595DA0000C0B1图 2 例2流程图

流程图用到了多个条件判断,如果条件的值为真,则执行某些操作,否则,进一步进行条件判断,执行其它操作。流程图中需要逐级判断输入的考试成绩在哪个分数段内,并输出相应的等级。当遇到类似这种情况时,就可使用多重if结构解决。

多重if结构实际上是if-else结构的另一种形式;if-else-if,这种形式也称为阶梯式,当有多个分支选择时,可采用多重if结构。

多重if结构语法如下:

if 条件表达式1:

语句块

elif 条件表达式2:

语句块

elif 条件表达式3:

语句块

……

else:

语句块

多重if结构从上到下依次对条件进行判断,当条件满足时就执行该条件后面的语句,并跳过其它的条件判断;若没有条件满足,则执行最后的else语句块,如果没有else语句块,则直接执行该结构后面的语句。

下面根据图2所示的流程图给出例2的程序代码。

u=4117021834,3344525234&fm=173&app=49&f=JPEG?w=640&h=158&s=EEC0E0124B63472446758CDA000080B2

程序使用了if-elif-else多重条件结构,每个条件表达式使用了逻辑与运算符,用于连接两个子表达式,只有两个子表达式都满足条件时,整个表达式的值才为真。

3、 嵌套if语句

前面介绍了简单if和多重if语句,可以解决很多条件判断问题。但还存在一种嵌套的判断情况,即只有当前提条件满足时,才判断后续条件是否满足。例如,如果星期日天气晴朗,且能买到去青岛的高铁票就去青岛玩,否则就在家休息。在这个例子中,第一条件是天气晴朗,在天气满足的条件下,再判断第二条件,是否能买到去青岛的高铁票,两个条件全部满足就去青岛玩,否则就在家休息。

嵌套if语句是指在已有if语句块中插入另一个if语句块,实现条件的嵌套判断,if语句块可以多层嵌套。嵌套语句语法结构如下:

if 前提条件:

if 后续条件:

语句块

else:

语句块

else:

语句块

嵌套if语句在Java、C等编程语言中,编写不规范时,有时会引发一些疑问,下面是一个Java语言的例子:

u=1087072869,3757788466&fm=173&app=49&f=JPEG?w=640&h=70

按条件语句的语法形式,上面的例子似乎有两种可能的解释,第一种理解:外层的if是一个没有else部分的条件语句,最后的else部分属于内层的if语句;第二种理解:内层if是一个不带else部分的条件语句,最后的else属于外层的if条件语句。

为了避免这种二义性,Java语言规定,每个else部分总是属于前面最近的那个缺少对应的else部分if语句。根据这一规定,上面的例子第一种解释是正确的,第二种解释是不正确的。

Python不会出现这样的疑问,Python使用强制缩进使代码正确对齐,让程序员来决定else属于哪一个if,从而减少了不确定性。例如,上面的例子代码按照第一种理解可以这么写:

u=4292248218,185092244&fm=173&app=49&f=JPEG?w=640&h=70

Python代码可以很明显看出,else是和内层if匹配的。

例3:编写一个程序,要求用户输入两个整数,如果输入的两个整数不相等,输出最大的数。

程序的主要功能是练习嵌套if语句的使用,要求对用户输入的两个整数首先判断是否相等,在两个数相等的条件下,再判断哪个数大,并输出较大的数。程序流程图如下:

u=3816226744,2641342704&fm=173&app=49&f=JPEG?w=554&h=574&s=5EAA3C62410FE54F1EFD84DA0000C0B1图 3 例3流程图

流程图用到了嵌套条件判断。首先判断num1和num2是否相等,如果相等,程序不做任何处理并结束程序;如果不相等,再判断num1是否大于num2,若条件满足输出num1,程序结束,否则输出num2,程序结束。

下面根据图3流程图给出例3的程序代码。

u=1505298025,3927738263&fm=173&app=49&f=JPEG?w=640&h=137&s=4F40E8124F62472046F51CD8000050B2

代码使用了嵌套if语句实现了程序任务要求,input获取用户输入后,返回的是字符串,需要把字符串强制转换为整数。

课程小结

(1)在Python语言中,if语句由三部分组成:关键字本身,用于判断结果真假的条件表达式,以及当表达式为真或者非零时执行的代码块。else 语句与if语句搭配使用,如果if语句条件表达式的值为真,则执行if 后面的语句块;如果if语句条件表达式的值为假,则执行else后面的语句块。

(2)多重if结构语句实际上是if-else结构的另一种形式;if-else-if,这种形式也称为阶梯式,由多个条件判断语句组成,如果条件的值为真,则执行某些操作,否则,进一步进行条件判断,执行其它操作。

(3)嵌套if语句是指在已有if语句块中插入另一个if语句块,实现条件的嵌套判断,if语句块可以多层嵌套。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/454555.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js setTimeout 使用方法

在项目过程中遇到一些异步加载和其他js方法冲突的问题: 如图初始化的时候会加载“商户基本信息”,修改商户名称字段第二个页面也需要修改: function setSeqAndName(){var pritab2 $("#allTabs").tabs("getTab", 1).find("ifra…

机器学习算法之 logistic、Softmax 回归

逻辑回归本质是分类问题,而且是二分类问题,不属于回归,但是为什么又叫回归呢。我们可以这样理解,逻辑回归就是用回归的办法来做分类。它是在线性回归的基础上,通过Sigmoid函数进行了非线性转换,从而具有更强…

程序员成功之路

程序员成功之路 ——The road ahead for programmer(演讲稿) 一、我很羡慕在座的各位同学,因为你们是中国未来的程序员,而我不是,我一直很遗憾。 比尔盖茨曾经写过一本书叫做《未来之路》The road ahead, 那么今天我选…

部署egg需要用到pm2吗_使用宝塔面板部署校园综合服务平台项目

本文档为校园综合服务平台服务端的安装部署教程,欢迎star小程序端下载地址:https://github.com/landalfYao/help.git后台服务端下载地址:https://github.com/landalfYao/helpserver.git后台客户端下载地址:https://github.com/lan…

机器学习算法之线性回归

一、什么是回归算法 回归算法是一种有监督算法 回归算法是一种比较常用的机器学习算法,用来建立“解释”变量(自变量X)和观测值(因变量Y)之间的关系;从机器学习的角度来讲,用于构建一个算法模型(函数)来做属性(X)与标签(Y)之间的映射关系&a…

Console-算法[for]-国王与老人的六十四格

ylbtech-Arithmetic:Console-算法[for]-国王与老人的六十四格1.A,案例-- -- ylb:算法-- Type:算法[for]-- munu:国王与老人的六十四格-- 20:32 2012/3/16-- 案例:印度有个国王,他拥有超人的权力和巨大的财富。但权力和财富最终让他…

在OOW2009上寻宝撞大运续(床上篇)

历时5天的Oracle Open World 2009终于,终于结束了。今天最后的节目是去听一场金融分析师的会议,“只”开了不到6个钟。去的时候是毛毛雨,回来的时候终于看到了一缕阳光。说夕阳无限好不大合适。用Larry Ellison的说法是“太阳落下的地方也是太…

特征图注意力_从数据结构到算法:图网络方法初探

作者 | 朱梓豪来源 | 机器之心原文 | 从数据结构到算法:图网络方法初探如果说 2019 年机器学习领域什么方向最火,那么必然有图神经网络的一席之地。其实早在很多年前,图神经网络就以图嵌入、图表示学习、网络嵌入等别名呈现出来,其…

FFMPEG 源码分析

FFMPEG基本概念: ffmpeg是一个开源的编解码框架,它提供了一个音视频录制,解码和编码库。FFMPEG是在linux下开发的,但也有windows下的编译版本。 ffmpeg项目由以下几部分组成: ffmpeg 视频文件转换命令行工具,也支持经过实时电视…

面试之 Redis汇总

简介 Redis 持久化机制 RDB(Redis DataBase) AOF(Append-only file) Redis 4.0 对于持久化机制的优化 补充:AOF 重写 二者的区别 二者优缺点 Memcache与Redis的区别都有哪些? 缓存雪崩、缓存穿透、…

Oracle 10g 问题集锦

监听服务中Oracle数据库之中使用最主要的一个服务,但是这个服务经常会出现错误,包括以后在工作之中此服务也会出现错误,故给出两种常见错误的解决方案(故障1、故障2) 故障1: 注册表使用了优化软件(如&#…

iOS linker command failed with exit code 1 (use -v to see invocation)多种解决方案汇总

有时可能会遇到这种错误,关键是这种错误,有时只有这一句话,也不会给更多错误信息。 网上找了一些,总结了如下:(PS:以下是按照解决简易程度排序,不代表出现概率) 1、bitco…

面试之 Mysql 汇总

事务相关 什么是事务? 事务:是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务。事务的ACID属性: (1)原子性(Atomicity):   事务是一…

Exchange Server 2003 部署手册

1. 环境需求服务器: 域控制器1台; Exchange Server服务器1台。 IP和机器名配置: 域控制器:机器名:dc IP: 10.10.10.200 掩码:255.255.255.0 网关:10.10.10.254 DNS:127.0.0.1 Exchange&#xff…

html浏览器的区别是什么意思,不同浏览器对css的识别有区别吗?

不同浏览器对css的识别是有区别,因此针对不同的浏览器去写不同的CSS。下面本篇文章给大家介绍一些常用CSS书写技巧(不同浏览器之间的差异)。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。不同的浏览器,比如Int…

面试之 Python 进阶

前端相关 1.谈谈你对http协议的认识。 浏览器本质,socket客户端遵循Http协议   HTTP协议本质:通过\r\n分割的规范 请求响应之后断开链接 > 无状态、 短连接 具体:   Http协议是建立在tcp之上的,是一种规范,它…

Lync Server外部访问系列PART5:模拟公网DNS

因为要实现外部用户访问,所以我们必然需要在公网DNS中添加我们所需要的一些A记录,而这样的测试需要我们拥有一个公网的域名以及一个可发布、可访问的IP。如果没有的话就没办法这样测试,所以我们今天在物理局域网中搭建一台DNS服务器&#xff…

oracle对查询结果求和_Oracle 闪回技术详解

概述闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成)。需要注意的是,闪回技术旨在快速恢复逻辑错误,对于物理损坏或是…

html里写js ajax吗,js、ajax、jquery的区别是什么?

js、ajax、jquery的区别1、JS是一门前端语言。2、Ajax是一门技术,它提供了异步更新的机制,使用客户端与服务器间交换数据而非整个页面文档,实现页面的局部更新。3、jQuery是一个框架,它对JS进行了封装,使其更方便使用。…

泰安第一中学2021年高考成绩查询,等级考第一天结束 泰安部分考生已完成2021年高考...

6 月 9 日,山东新高考进入第三天,也是学业水平等级考试的第一天,物理、思想政治、化学三门选考科目的考试已全部完成。由于选考科目不同,考生结束高考的进程也不同,9 日下午,选考物理、思想政治、化学的考生…