AI programming with python-Intro to python

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

猜你喜欢

转载自blog.csdn.net/linkequa/article/details/84893051