Python基础9笔记

1、三元表达式

三元表达式是 if ... else 分支结构的简化版,可以在一行语句之内表示分支结构,常用于简单的逻辑表达。合理使用三元表达式可以让代码变得更简洁易读。

2、逻辑运算

布尔运算利用逻辑运算符产生新的布尔值,上图中给出了“与”“或”“非”三种运算符的记忆口诀。

3、嵌套条件

if HP > 300:
  if SP > 400:
    print('使用技能“治愈术”')
  else:
    print('使用技能“吸血”')
else:
  print('使用道具“红药水”')

4、if和if...else...的区别

HP = 350

# 代码示例:不使用 elif
if HP < 400:
  print('选择装备:高坚果之铠')
if 400 <= HP < 800:
  print('选择装备:高级巫师袍')
if HP >= 800:
  print('选择装备:外婆的红斗篷')

# 代码示例:使用 elif
if HP < 400:
  print('选择装备:高坚果之铠')
elif HP < 800:
  print('选择装备:高级巫师袍')
else:
  print('选择装备:外婆的红斗篷')

发现了吗?在 HP = 350 的情况下,若代码中不使用 elif,则计算机需要进行三次条件判断;但在 if ... elif ... else 语句中,HP < 400 的条件一旦被满足,就会跳出条件分支,所以计算机只需要进行一次条件判断就够了。

前面说过,多路分支适合用来解决“多选一”的问题。在多个条件中只能满足一项,也就只能走一个分支,对这样的需求来说,使用 if ... elif ... else 语句无疑是更合适的。

if...会3个都执行判断,而if... elif ... else...只会执行2次,代码执行效率提升了

看下面的代码,你会发现什么?

HP = 350

if HP > 200:
  print('选择装备:高坚果之铠')
elif HP > 400:
  print('选择装备:高级巫师袍')
elif HP > 800:
  print('选择装备:外婆的红斗篷')

这段代码的问题很明显:两个 elif 分支永远不会被执行。这是因为我们把最宽泛的条件 HP > 200 接在了 if 后面,一旦满足 HP > 200,计算机就会打印 选择装备:高坚果之铠,然后跳出条件分支,elif 后的两个条件就不会被判断了。

有些萌新会误以为计算机会同时判断 HP > 200HP > 400 和 HP > 800 这三个条件,所以就会写出这样的代码。老师要提醒你啦,不是的哦,计算机会按照从上到下的顺序,依次检验 if ... elif ... else 语句中的条件是否成立。

你可以把 ifelif 后的条件想象成一叠会员卡,我们在使用会员卡时,当然要先看优惠力度最大,使用条件最苛刻的“金卡”能不能用,再看优惠力度稍小,使用条件较为宽松的“银卡”能不能用,最后再考虑任何人都能使用的“无门槛 2 元红包”。

也就是说,如果我们想让条件判断的逻辑符合我们的预想,我们就需要让计算机先判断最苛刻的 HP > 800 是否成立,再判断 HP > 400 是否成立,然后再判断最容易成立的 HP > 200

我们在前面详细讲述了使用 elif 语句时的注意事项,现在我们再回过头来看看使用多个 if 语句的代码。在完成哪些需求时,我们需要用多个 if 来实现呢?其实,我们在前面已经用到过这样的代码了:

if AT > 1000:
  weapon = '苹果炸弹'
else:
  weapon = '万能魔杖'

if HP > 800:
  cloak = '外婆的红斗篷'
else:
  cloak = '高级巫师袍'

概括一下,如果计算机只需要做 一次多选一问题,就可以用 if ... elif ... else 语句将各个选项整合到一个多路分支中,在这个过程中,我们需要让计算机先检查最难满足的条件,这样才能保证程序运行与我们的预期相符,并且提高代码效率。

bool('')        # False
bool(' ')       # True
bool('a')       # True
bool(0)         # False
bool(1)         # True
bool([])        # False
bool([1])       # True
bool({})        # False
bool({'a': 1})  # True

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值