python基础教程(第三版)学习笔记(二)

第五章节:条件与循环,以及其他

关于条件语句,循环语句,以及python独特的列表推导。

函数导入重命名:

如果有多个函数都叫做同一个名字则有歧义 》 使用import .. as ..,例如:

python可以多对多的赋值,python中叫做序列解包、可迭代对象解包。如果函数返回元组或其他可迭代对象,则方便很多(注意需要保持等号左右的目标数相同,否则报错)。

python支持链式赋值:

x = y = some_func()

y = some_func()

x = y

等价,

但和

x = some_func()

y = some_func()

不等价。

增强赋值:+=, *=, /=, %=等

python通过缩进来体现代码块。基于代码块,有条件语句、循环语句等。

条件语句:

当用作布尔表达式时,这些值被视为假:False,None,(各种数据类型的,包括浮点、复数等)0,“”,(),[],{},

其他元素被视为真。

注意 虽然[]和""都为假(即bool([]) == bool("") == False),但它们并不相等(即[] != "")

if语句

if  else 语句

条件表达式:类似C语言的三目运算符。status = value1 if condition else value2

elif 语句

if语句可以嵌套

if中的条件:

需要注意:

1. 两者是否能比较,以及是否有比较的意义?

2. == 和 is 的异同:is检查两个对象是否相同,==检查两个对象是否相等。两个对象可以相等但不相同,或者两个对象其实是同一个。

3. is不可以用于数字,字符串等不可变基本值,因为结果不可预测,他们并不是变量,没有稳定的分配地址。

in:判断是否在序列/映射中

短路:布尔运算符只执行必要计算。知道就可以,通常不会出什么问题。业务中通常有代码规范,不会允许在条件表达式中夹带任何可以执行的代码私货。

断言:assert,提早推出程序及时止损。

循环:

while,for

字典的迭代:

因为字典没有顺序,如果顺序很重要,可将键或值存储在一个列表中并对列表排序,再进行迭代。

要让映射记住其项的插入顺序,可使用模块collections中的 OrderedDict类

迭代辅助函数:

一个更好用的是zip,把两个序列缝合起来,返回一个由元组组成的序列。

注意当两个序列长度不同的时候,只会选取公共的最短序列长度。

enumerate获取索引:

反向和排序:

break可以提前跳出循环体,相比之下,continue会跳过当前迭代,继续执行循环体。

while True break组合可以成为一个最简单的有限状态机,或工作流。

如果想再循环正常结束时才做某种措施,例如:

或者,更简单的示例:

,因为循环体也有状态布尔值。

简单推导:

加入判断条件:

多个for组合在一起:

使用圆括号在后面介绍生成器。

字典推导:

pass:什么都不做,是个占位符,为了语法需要。注:文档字符串某种程度有pass的功能。

del:思考python的垃圾收集机制:

python中根本没有办法删除值。都是靠垃圾回收机制来自动回收的,del只是删除了名称。类似与C++的智能指针,python的垃圾回收自己会监控这个元素实际的值在后续是否还会被引用,如果没有了,其就会立刻删掉。

exec:将字符串当做代码来执行

eval:类似exec,更弱一些,用来计算输入的python表达式的值。

exec和eval很不安全,不建议采用。

本章小结:

你应该学会了:

1. 打印

2. 导入

3. 赋值

4. 何为代码块

5. 条件语句if以及一些注意事项,例如is和==的区别,布尔变量对哪些值认为是假,is为什么不能用于判断数字、字符串

6. 断言

7. 循环和推导

8. pass,del,exec和eval

两篇笔记基本涵盖了基础知识。下面会整理抽象部分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值