1, python 中的算术符号:
addition +
subtraction -
multiplication *
division /
exponentiation
(注意乘方不是^)
modulo %
integer division // (无论正数、负数,都向下取整)
2, 赋值操作
=,-=,+=等等(直接在变量后++在python中不可用,在C中和perl中都可以)
3, 对标准类型进行分类
以访问模型分类:
分类 | python类型 |
---|---|
直接访问 | 数字 |
顺序访问 | 字符串,列表,元祖 |
映射访问 | 字典 |
以标准类型分类:
数据类型 | 存储模型 | 更新模型 | 访问模型 |
---|---|---|---|
数字 | 标量 | 不可更改 | 直接访问 |
字符串 | 标量 | 不可更改 | 顺序访问 |
列表 | 容器 | 可更改 | 顺序访问 |
元祖 | 容器 | 不可更改 | 顺序访问 |
字典 | 容器 | 可更改 | 映射访问 |
集合访问也没有顺序,分为可变集和不可变集。可变集合是不可哈希的,不能作为字典的键和其它集合的元素;不可变集合有固定的哈希值,可以作为字典的键和其它集合的元素。
4, membership操作
字符串和列表都可以用in或者not in来判断有没有某个元素存在
5, 应用在list中的函数
min(), max(), sorted(),如果是对只有数字的列表进行比较,则根据数值的大小;如果是对只有字符串的列表进行比较,则根据字符的排序顺序(ASCII码)决定大小;如果既包含数字,又包含字母,则报错。
6, 对字典进行赋值
dict_test = {‘a’:1, ‘b’:2}
dict_test[‘a’]输出为1
7, identity操作
is, is not
==, !=
is比较两个变量是否有相同的内存地址,
则判断两个变量是否相同(比如调用__eq__等方法)。比较是否为None对象时,要用is
8,python将bool值判为0的情况
1,constants defined to be false: None and False
2,zero of any numeric type: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
3,empty sequences and collections: '"", (), [], {}, set(), range(0)
9, iterable对象
an object that can return one of its elements at a time
10,pop()函数,取出list的最后一个元素,跟append()功能相反
11,用yield可以在函数中创建迭代器,可以进行i.e. for … in …之类的循环操作(普通的函数进行这种操作就会报错)。创建的迭代器是一次性的,用一次就失效了,看下面的代码:
def my_range(x):
i = 0
while i < x:
yield i
i += 1
y = my_range(5)
for x in y:
print(x)
for x in y:
print(x)
# 整个代码的输出为
0
1
2
3
4
# 第二次迭代y根本没有起到作用
12,方括号生成列表解析式,圆括号生成发生器:
sq_list = [x**2 for x in range(10)] # this produces a list of squares
sq_iterator = (x**2 for x in range(10)) # this produces an iterator of squares