8条件进阶

1.多路分支
在 Python 中,我们可以通过 elif 来实现从“二选一”到“多选一”。

elif 是 else if 的缩写,意即“否则,如果……则执行……”。

height=int(input('请输入你的身高'))
if height > 180 :
  print('高达威猛')
elif height > 170 :
  print('身材很好')
elif height > 160 :
  print('多多运动')
else :
  print('快快长大')

elif 的语法非常简单。但在使用 elif 时,我们要注意的是:if、elif 和 else 的代码执行是严格遵循某个顺序的。

if ... elif ... else 语句的特点是按顺序执行分支。它会按照代码顺序,依次判断 if、elif 后接的条件是否成立,一旦发现某个条件满足,就会执行该条件指定的代码块,并跳出分支结构;至于其他分支的代码,它就一概不管了。

2.逻辑运算
条件语句中的条件最终都会转化为布尔值。因此,两个条件同时满足,这个要求从本质上讲,也就是对两个布尔值进行运算。

Python 中,每种数据类型都有特定的运算方法,比如字符串有加法运算,数值有四则运算,布尔类型它也有自己的运算形式:布尔运算。

布尔运算是一种关系运算,它的基本形式包括我们上一关讲到的 比较运算,还包括三种常见的 逻辑运算:与运算、或运算 和 非运算,分别由运算符 and、or、not 来实现。

“与”?“或”?“非”?这在日常生活中很常见,它们不仅是 Python 中逻辑运算的基本形式,更是人类完成逻辑推理的依据。

if height < 130 and weight <45 :
  print('快快长大')
这段代码的意思是:如果身高小于 130  并且 体重小于45斤,就打印“快快长大”。

if height < 130 or weight <45 :
  print('快快长大')
这段代码的意思是:如果身高小于 130  或者 体重小于45斤,就这段代码的意思是:如果身高小于 130  并且 体重小于45斤,就打印“快快长大”。
。其中一项达到要求,另外一项不管是多少都会打印“快快长大”。

在条件语句中,not 运算符会对输入条件的 True 和 False 取反,简单来说就是将条件反过来,not True 的结果为 False,not False 的结果为 True。

下面是一个借助 not 运算符写成的简易门禁系统:
identity = input('请输入你的身份:研究员/访客/行政/外勤/财务')
if not identity == '访客':
  print('请通过,欢迎来到实验室')
这段代码的意思是,对除了 访客 以外的其他人都打印出“请通过,欢迎来到实验室”。其中,if not identity == '访客': 和 if identity != '访客': 是等价的。


3.成员运算符
成员运算符 in,成员运算符就是判断某个数据是否为另一个数据的“成员”的运算符。我们可以使用 in 来判断某些字符是否存在于一个字符串中。 举个例子:

print('on' in 'Hello Python')
# 输出:True

print('an' in 'Hello Python')
输出:False

4.三元表达式

例:这是一个求绝对值的问题,使用if ... else可以这样写:
x = 4
if x >= 0:
  x_abs = x
else:
  x_abs = -x
print(x_abs)

如果用到三元表达式,那这段代码一下子就变简洁了:
x = 4
x_abs = x if x >= 0 else -x
print(x_abs)

x_abs 的赋值被 if 和 else 分成三个部分,其中第二部分是条件,当满足条件时,返回第一部分的值,否则返回第三部分的值。

对于求最值、求绝对值这种逻辑简单的问题,使用三元表达式可以大大简化代码的结构;因为语法规则更简单,多用三元表达式也能降低语法错误的概率。
sum1 = 72
sum2 = 68
sum_max = sum1 if sum1 > sum2 else sum2
print(sum_max)
如果sum1>sum2,则打印sum1,反之打印sum2
 

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值