else应输入一个语句是什么意思_Python学习笔记:条件语句if、elif与else

Python学习基础专栏:第九集

本专栏针对刚开始学习Python的小白开放,文章内容引用教材,均由泰迪学院与机械工业出版社共同策划,校企联合编写,目前800余所高校正在使用,为正版教材。请放心食用~

什么是条件语句

条件语句的运行逻辑为:如果条件被满足(返回真值),可以做某件事情;如果条件不满足(返回假值),就做另一件事情,或什么也不做。

通过图1,可以对条件语句的运行机制作简单的了解。虚线框内是一个选择结构,此结构中包含一个判断条件和两条执行语句,以及连接各部分的流向线。根据判断条件(布尔表达式)返回值的情况,程序将选择执行语句1或语句2。

edbcd52ca3d6922beeae8cca31ddf047.png

图 1条件结构

 

if、elif与else

      在Python中,实现选择结构最普遍的工具是if语句。if语句中包含三种条件判断句式,即if、elif和else。其中,if与elif部分都包含判断条件,当判断条件都不成立时,程序才能执行else部分的代码。

if语句最基础的形式是if-else,其基本语法格式如下。

if 条件表达式:

操作语句1

else:

操作语句2

if-else语句常用的参数及说明如表 1所示。

表 1 if-else语句常用的参数及说明

参数

说明

条件表达式

接受布尔表达式。表示判断条件是否成立。无默认值

操作语句

接受操作语句。表示执行一段代码。无默认值

if-else语句执行时,程序首先判断if部分条件的真假。如果条件表达式返回真值,则执行操作语句1;如果返回假值,则执行操作语句2。

if-else语句的形式很简单,通过条件判断的结果即可决定下一步的执行方向,具有两条分支。以编写一个账户密码登录界面为例,介绍该语句的使用,如代码 1所示。

代码1 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

****登录成功,欢迎!*****

在代码1中,使用input函数以支持交互式的输入,并在函数括号内插入文字进行了输入提示,增强了登录界面的人性化。在if部分的条件判断式中,使用and运算符进行且运算,只有账户和密码都输入正确时才能成功登录,从而增加了安全性。

if-else语句可以缩减为单行形式,其基本语法格式如下。

操作语句1 if 条件表达式 else 操作语句2

if-else语句单行形式语法格式中的参数说明与表1一致。如果条件表达式返回的结果为真,则执行if前面的操作语句1,否则执行else后面的操作语句2。

if-else语句使用单行形式的目的主要在于增加代码的简洁性,其基本使用方法如代码2所示。

代码2 if-else语句的单行形式

In[3]:

num1, num2 = 11, 90

print('num1加num2为百分数') if 1000 > num1 + num2 >100 else

        print('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:

操作语句1

elif 条件表达式2:

操作语句2

else:

操作语句3

if-elif-else语句语法格式中的参数与表1一致。该语句执行时,按照从上到下的顺序,依次检查每个条件表达式返回值的情况,任何一个条件表达式返回真值,就执行该表达式下面的操作语句。若所有条件表达式都返回假值,则执行else下面的操作语句。

if-elif-else语句相对于if-else语句优势明显,可以实现更为复杂的功能。使用if-elif-else语句实现年龄段的判断,如代码3所示。

代码3使用if-elif-else语句实现年龄段的判断

In[4]:

age = input('请输入您的年龄:')

age = int(age)

if age < 18:

    print('未成年人!')

elif age >= 18 and age <= 25:

    print('青年人!')

elif age > 25 and age <= 60:

    print('中年人!')

else:

    print('老年人!')

Out[4]:

请输入您的年龄: 20

青年人!

代码3通过比较运算符实现了年龄段划分,并能区分年龄段界限,避免逻辑出错。这里需要注意,input函数将接收的任何数据类型都默认为str,如果不在该代码中插入转换接收数据类型的语句,程序将无法执行。这是因为,接收的年龄数据会被用于和后续的年龄数值比较,而number与str是无法比较的。

需要说明,if语句还有一种形式是if-if-else,这一形式中的if可以有多个,从而实现多分枝。与if-elif-else语句相比,差异不仅仅存在于形式上,性能也同样有分别,使用多个if的效率更低,它实际上是多重if语句。

if语句支持嵌套,即在一个if语句中嵌入另一个if语句,从而构成不同层次的选择结构。嵌套的意义在于,实现多层选择结构。使用嵌套对条件语句的功能有升华作用,这与elif是相似的,elif将有限的条件分支扩展,嵌套则提供了建立多层选择结构的工具,两者分别在不同的维度上提升if语句的功能性。使用嵌套需要以不同的缩进长度划分代码结构的层次,因此嵌套时要特别注意缩进的规范性。

嵌套选择结构具有很广的应用场景,以下给出一个例子。假设系统中存储了五个用户的身份信息,分别是:来自英国的Tom,35岁;来自法国的Frank,35岁;来自德国的Bob,35岁;来自澳大利亚的Washington,51岁;来自南非的Jane,21岁。设计一个程序,询问用户的部分信息,在对方不说出自己名字的情况下识别其身份,如代码4所示。

代码4 嵌套if-elif-else语句

In[5]:

age = input('请输入你的年龄:')

age = int(age)

if age == 35:

    nation = input('请输入你的国籍:')

    if nation == '英国':

        print('你是Tom! ')

    elif (nation == '法国'):

        print('你是Frank! ')

    else:

        print('你是Bob! ')

elif age == 21:

   print('你是Jane,来自南非! ')

elif age == 51:

   print('你是Washington,来自澳大利亚! ')

else:

   print('请输入正确年龄值! ')

Out[5]:

请输入你的年龄:35

请输入你的国籍:法国

你是Frank!

从代码4可以看到,该程序具有两层选择结构。第一层用于询问年龄,程序通过接收的年龄,可以判断输入者是Jane、Washington或其他3个同龄人人中的一人;若收到的值不在这五人年龄范围中,则提示输入出错;若收到的值是3个同龄人的岁数,则进入下一层选择结构,即询问国籍;通过询问国籍,程序可以准确报出输入者的信息。

使用if语句时,需要注意以下几点。

(1)条件判断语句应尽量简单,若语句复杂则应当将运算先放到一个变量中。

(2)Python的条件语句中允许常用的数值比较运算(==,!=,>,>=,<,<=)。

(3)Python允许无限次if语句嵌套,但实际编程中如果必须用到3到4级嵌套,建议考虑用其他方法编写代码,嵌套超过两层会使程序的运行效率大打折扣。

如果你get到了今天的知识~别忘了关注、转发、点赞、在看哦~

1debaf120f918a1ba8f98cc9713d3ea2.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值