Python基础语法回顾

1:对象的引用计数

在Python中对一个变量(或者变量名)赋值时,你就创建了一个指向等号右边对象的引用。实际上,当有一个整数列表时,如果我们把a赋值给一个新的变量,那么我们看一个过程。

Python基础语法回顾
我们发现把a改变了,b也随之改变,发现和C++语法不太一样。原来和C++的智能指针有点像。

我们看他的内存模型,Python基础语法回顾

也就是两个引用指向一个对象。

2:可以用isinstance函数来检查一个对象是否是特定类型的实例。

Python基础语法回顾

isinstance也可以接受一个元组,例如:

Python基础语法回顾

3:模块导入

在Python中,模块就是以.py为后缀名并包含Python代码的文件。比如模块 some_module.py
Python基础语法回顾
那么我们使用

import some_module
result = some_module.f(5)
pi = som_module.PI

或者

from some_module import f,g,PI
result = g(5,PI)

也可以使用as关键字,导入内容给与不同的变量名:

import some_module as sm
from some_module import f,g,PI
r1 = sm.f(pi)
r2 = gf(6,pi)

Python基础语法回顾

为什么a,b和c不共享一个对象呢?因为list函数总是创建一个新的Python列表

还有is 和 == 是不同的,例如

Python基础语法回顾

4:可变对象和不可变对象

可变对象: 列表、字典、Numpy数组都是可变对象,大多数用户设定的类型(类)是可变的。可变对象中包含的对象和值是可以被修改的。
例如:
Python基础语法回顾
不可变对象:字符串,元组

例如:
Python基础语法回顾

Python基础语法回顾

5: 字符串,可以用单引号或者多引号表示,如果需要换行,那么就需要三个单引号或者三个双引号"""

如图:

Python基础语法回顾
字符串对象时不可修改的,例如:

Python基础语法回顾
但是可以替代,替代以后会重新生成新的对象。

Python基础语法回顾

所以按对象理解即可。

可以通过str将其他类型转换为字符串。

6:列表、集合和字典的推导式

列表推导式:

[expr for val in collection if condition]

它和下面的for的等价

result = []
for val in collection:
	if condition:
		result.append(expr)

我们举个例子:

Python基础语法回顾

集合、字典的推导表达式也是一样。
Python基础语法回顾

字典和C++里面的hash表有点像,使用enumerate生成字典

Python基础语法回顾

7:生成列表嵌套表达式

从前往后写即可,注意嵌套表达式和列表推导式的区别,例如,找出一个列表里每个单词出现e的次数大于2的单词。

嵌套列表表达式可以将这个列表平铺开来:

Python基础语法回顾
如果是使用列表表达式,那么列表里的每个元素依然是列表
Python基础语法回顾