小甲鱼python 第007、008讲:了不起的分支和循环1、2

第007、008讲:了不起的分支和循环1、2

讲课笔记

0.elif的用法

if 条件1:
	语句
elif 条件2:
	语句
elif 条件3:
	语句
else:
	语句

注意别把冒号给忘掉啊,老是把冒号给扔了。

1.else“悬挂”

简单来讲,else悬挂的意思就是else与其最近的if进行匹配,这在C语言里面是有可能出现bug的,但是由于python缩进的规则,这个问题便不会出现。缩进是python的灵魂。

2.条件表达式(三元操作符)

a = x if 条件 else y

此表达式的意思是:如果条件成立,a被赋值为x,如果条件不成立,a则被赋值为y。

3.assert(断言)

if的近亲,语法为:assert 条件
其表达的意思是:若assert后的条件为假,在执行到assert语句时,程序会自动退出,并抛出AssertionError

思尻题

0. if not (money < 100): 上边这行代码相当于?

我答:if money >= 100

鱼答:

思尻:

1. assert 的作用是什么?

我:在程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert的作用就非常关键了。(从书上抄的)

鱼:

assert这个关键字我们称之为“断言”,当这个关键字后边的条件为假的时候,程序自动崩溃并抛.出AssertionError的异常。
什么情况下我们会需要这样的代码呢?
当我们在测试程序的时候就很好用,因为与其让错误的条件导致程序今后莫名其妙地崩溃,不如在错误条件出现的那一瞬间我们实现“自爆”
一般来说我们可以用Ta再程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就非常有用了。

思尻:黄字很重要,可以更快速的定位BUG。

2. 假设有 x = 1,y = 2,z = 3,请问如何快速将三个变量的值互相交换?

我:

x = 1
y = 2
z = 3
temp = x
x = y
y = z
z = temp
print(str(x) + str(y) + str(z))

结果是 x = 2, y = 3, z = 1,我这并不快速啊,想不到如何用到本节课的知识。

鱼:x, y, z = z, y, x

思尻:卧槽。。。C语言只见过int x, y = 0,没见过Python这样的,卧槽。

3. 猜猜 (x < y and [x] or [y])[0] 实现什么样的功能?

我:不知道哇,先是计算比较表达式(x<y),其值

鱼:这其实是 Python 的作者还没有为 Python 加入三元操作符之前,Python 社区的小伙伴们灵活的使用 and 和 or 搭配来实现三元操作符的功能,这里边有涉及到列表和切片的知识,这部分知识很快就会讲解,迫不及待的朋友可以先稍微预习下。

思尻:列表和切片,ok~

4. 你听说过成员资格运算符吗?

我:木有,那是啥(⊙ˍ⊙)

鱼:Python 有一个成员资格运算符:in,用于检查一个值是否在序列中,如果在序列中返回 True,否则返回 False。

>>> name = '小甲鱼'
>>> '鱼' in name
True
>>> '肥鱼' in name
False

思尻:序列?那是什么?和字符串有什么区别?

冻手题

0. 视频中小甲鱼使用 if elif else 在大多数情况下效率要比全部使用 if 要高,但根据一般的统计规律,一个班的成绩一般服从正态分布,也就是说平均成绩一般集中在 70~80 分之间,因此根据统计规律,我们还可以改进下程序以提高效率。

我:

score = int(input('请输入成绩:'))
if 60 <= score <80:
    print('C')
elif 80 <= score < 90:
    print('B')
elif 90 <= score <= 100:
    print('A')
elif 0 <= score < 60:
    print('D')
else :
    print('输入错误')

鱼:

score = int(input('请输入一个分数:'))
if 80 > score >= 60:
    print('C')
elif 90 > score >= 80:
    print('B')
elif 60 > score >= 0:
    print('D')
elif 100 >= score >= 90:
    print('A')
else:
    print('输入错误!')

思尻:将分支写前面就好了~

1. 请将以下代码修改为三元操作符实现:

x, y, z = 6, 5, 4
if x < y:
    small = x
    if z < small:
        small = z
elif y < z:
    small = y
else:
    small = z

我:emmm…没想出来

鱼:small = x if (x < y and x < z) else (y if y < z else z)

思尻:这个条件运算符还是有点绕的,在放值的地方可以再套一层条件运算符,牛逼。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值