python基础

python

类型与运算

可变类型与不可变类型

  • 核心类型中,数字、字符串和元组是不可变的;列表和字典不是这样
  • 可作用于多种类型的通用型操作都是以内置函数或表达式的形式出现的[例如,len(X),X[0]]

数据类型

字符串

列表

image.png

python基础_第1张图片
image.png

字典

image.png
python基础_第2张图片
image.png

元组tuple

  • 基本上就像一个不可以改变的列表
  • 从语法上讲,它们编写在圆括号中而不是方括号中,它们支持任意类型、任意嵌套以及常见的序列操作:
  • 真正的不同之处就在于一旦创建后就不能再改变。也就是说,元组是不可变的序列:

文件

python基础_第3张图片
image.png

数字

传统除法、Floor除法和真除法

类型属于对象,而不是变量
Python的变量就是在特定的时间引用了一个特定的对象。

共享引用


python基础_第4张图片
image.png
python基础_第5张图片
image.png
python基础_第6张图片
image.png

此时,并不是替换了原始的a对象,而是让这个变量去引用完全不同的一个对象,所以,b的值并不会因此改变。

有一些对象和操作确实会在原处改变对象(可变对象,如列表等)。对于支持这种在原处修改的对象,共享引用时的确需要加倍的小心,因为对一个变量名的修改会影响其他的变量。

使用分片进行copy


python基础_第7张图片
image.png

语句与语法

语句

python基础_第8张图片
image.png
python基础_第9张图片
image.png

赋值

python基础_第10张图片
image.png
python基础_第11张图片
image.png
image.png
python基础_第12张图片
image.png

这和分片内在的相似,但是不完全相同——一个序列解包赋值总是返回多个匹配项的一个列表,而分片把相同类型的一个序列作为分片的对象返回:


python基础_第13张图片
image.png

迭代器和解析

列表解析

image.png

快于


python基础_第14张图片
image.png

python3中新的可迭代对象

函数

参数匹配法则

python基础_第15张图片
image.png
python基础_第16张图片
image.png

函数高级特征

递归

间接函数调用

python基础_第17张图片
image.png
python基础_第18张图片
image.png

内省函数

函数自身的诸如名字的属性
func.name

匿名函数:lambda

image.png

由def创建并赋值后的函数对象工作起来是完全一样的
不过,·lambda是一个表达式,而不是一个语句


python基础_第19张图片
image.png

在序列中映射函数 map

python基础_第20张图片
image.png
image.png
python基础_第21张图片
看就明白

函数式编程工具:filter和reduce

理解为过滤:


python基础_第22张图片
image.png
python基础_第23张图片
image.png

迭代和解析

列表表达式

image.png
image.png
image.png

列表解析和矩阵

生成器

生成器在内存使用和性能方面都更好
函数包含一条yield语句,他们返回一个可迭代对象


python基础_第24张图片
image.png

生成器表达式:迭代器遇到列表解析

python基础_第25张图片
image.png

生成器表达式大体上可以认为是对内存空间的优化,它们不需要像方括号的列表解析一样,一次构造出整个结果列表。它们在实际中运行起来可能稍慢一些,所以它们可能只对于非常大的结果集合的运算来说是最优的选择。关于性能的更权威的评价,必须等到我们在本章稍后编写计时脚本的时候给出。

生成器是单迭代器对象

python基础_第26张图片
image.png

这与某些内置类型的行为不同,它们支持多个迭代器并且在一个活动迭代器中传递并反映它们的原处修改。


python基础_第27张图片
image.png

你可能感兴趣的:(python基础)