7段代码带你玩转Python条件语句

导读:条件语句通过一个或多个布尔表达式的执行结果(真值或假值)决定下一步的执行方向 。所谓布尔表达式,即对某个对象进行布尔运算,产生一个bool值 。条件语句的运行逻辑为:如果条件被满足(返回真值),可以做某件事情;如果条件不满足(返回假值),就做另一件事情,或什么也不做 。
作者:李明江 张良均 周东平 张尚佳
如需转载请联系华章科技
通过图1,可以对条件语句的运行机制作有一个简单的了解 。虚线框内是一个选择结构,此结构中包含一个判断条件和两条执行语句,以及连接各部分的流向线 。根据判断条件(布尔表达式)返回值的情况,程序将选择执行语句1或语句2 。
7段代码带你玩转Python条件语句

文章插图
▲图1 条件语句结构
在Python中,实现选择结构最普遍的工具是if语句 。此外,try语句专门用于异常处理,其内在逻辑也符合选择结构 。
01 if、elif与elseif语句中包含3种条件判断句式,即if、elif和else 。其中,if与elif部分都包含判断条件,当判断条件都不成立时,程序才能执行else部分的代码 。
if语句最基础的形式是if-else,其基本语法格式如下 。
if 条件表达式: 操作语句1else: 操作语句2if-else语句常用的参数及说明:
  • 条件表达式:接收布尔表达式,表示判断条件是否成立 。无默认值
  • 操作语句:接收操作语句,表示执行一段代码 。无默认值
if-else语句执行时,程序首先判断if部分条件表达式的真假 。如果条件表达式返回真值,则执行操作语句1;如果返回假值,则执行操作语句2 。
if-else语句的形式很简单,通过条件判断的结果即可决定下一步的执行方向,具有两条分支 。以编写一个账户密码登录界面为例,介绍该语句的使用,如代码清单①所示 。
  • 代码清单① if-else语句实现登录界面
In[1]: name = input ('请输入用户名:') password = input ('请输入密码:') if name == "Lucy" and password == "123456": print ('****登录成功,欢迎!*****') else: print ('-----您的输入有误,登录失败!-----') Out[1]: 请输入用户名:Lucy 请输入密码:123 -----您的输入有误,登录失败!----- In[2]: name = input ('请输入用户名:') password = input ('请输入密码:') if name == "Lucy" and password == "123456": print ('****登录成功,欢迎!*****') else: print ('-----您的输入有误,登录失败!-----') Out[2]: 请输入用户名:Lucy 请输入密码:123456 ****登录成功,欢迎!***** 在代码清单①中,使用input函数以支持交互式的输入,并在函数括号内插入文字进行了输入提示,增强了登录界面的人性化 。在if部分的条件判断式中,使用and运算符进行且运算,只有账户和密码都输入正确才能成功登录,从而增加了安全性 。
if-else语句可以缩减为单行形式,其基本语法格式如下 。
操作语句1 if 条件表达式 else 操作语句2if-else语句单行形式语法格式中的参数说明与图1一致 。如果条件表达式返回的结果为真,则执行if前面的操作语句1,否则执行else后面的操作语句2 。
if-else语句使用单行形式的目的主要在于增加代码的简洁性,其基本使用方法如代码清单②所示 。
  • 代码清单② if-else语句的单行形式
In[3]: num1, num2 = 11, 90 print('num1加num2为百分数') if 1000 > num1 + num2 >100 elseprint('num1加num2不为百分数') Out[3]: num1加num2为百分数if-else语句有明显的缺陷,即只能实现两条分支 。实际工作中需要用到的条件分支数目可能难以想象,扩展if语句的分支需要用到elif句式 。elif是“else if”的缩写,即“下一条件是否成立?” 。
使用elif有简洁、减少过分缩排的效果 。将elif代码块放在if和else之间,就组成了if-elif-else语句 。理论上,if语句中的elif可以无限多 。if-elif-else语句与if-else语句其实是等价的,后者相当于前者中elif个数为0或不执行的情况 。由于if-elif-else语句能提供更多条件分支,因此被普遍使用,其基本语法格式如下 。
if 条件表达式1: 操作语句1elif 条件表达式2: 操作语句2else: 操作语句3if-elif-else语句语法格式中的参数与上文说明一致 。该语句执行时,按照从上到下的顺序,依次检查每个条件表达式返回值的情况,任何一个条件表达式返回真值,就执行该表达式下面的操作语句 。若所有条件表达式都返回假值,则执行else下面的操作语句 。


推荐阅读