python3 中文手册:要点记录(持续更新)

毛泽东: “仗我们是不怕打的,帝国主义要想‘和平演变’我们这一代人也难;可下一代、再下一代就不好讲了。中国人讲‘君子之泽,五世而斩’,英国人说‘爵位不传三代’;到我们的第三代、第四代人身上,情形又会是个什么样子啊?我不想哪一天,在中国的大地上再出现人剥削人的现象,再出现资本家、企业主、雇工、妓女和吸食鸦片烟;如果那样,许多烈士的血就白流了……”
https://docs.python.org/zh-cn/3.6/tutorial/index.html
https://docs.pythontab.com/python/python3.5/datastructures.html

本文会持续更新

  1. 在交互模式下,上一次打印出来的表达式被赋值给变量 _。这意味着当你把Python用作桌面计算器时,继续计算会相对简单,比如:
    python3 中文手册:要点记录(持续更新)_第1张图片

  2. 反斜杠 \ 来转义
    单双引号;
    单双引号,里层引号 \ 没有转义;
    print() 函数会生成可读性更强的输出,即略去两边的引号,并且打印出经过转义的特殊字符;
    引号前添加 r 不转义。
    python3 中文手册:要点记录(持续更新)_第2张图片

  3. 切片
    python3 中文手册:要点记录(持续更新)_第3张图片

  4. Python 中的字符串不能被修改,它们是 immutable 的。因此,向字符串的某个索引位置赋值会产生一个错误

  5. 列表与 immutable 的字符串不同, 列表是一个 mutable 类型,就是说,它自己的内容可以改变。可以在列表结尾,通过 append() 方法 添加新元素

4. 其他流程控制工具

  1. 如果在循环内需要修改序列中的值(比如重复某些选中的元素),可以先拷贝一份副本
    python3 中文手册:要点记录(持续更新)_第4张图片
  2. 关键字参数必须跟随在位置参数的后面。传递的所有关键字参数必须与函数接受的其中一个参数匹配,它们的顺序并不重要。这也包括非可选参数。不能对同一个参数多次赋值。
    在这里插入图片描述
    接受一个必需的参数(voltage)和三个可选的参数(state, action,和 type)
  3. 解包裹参数*,也可以在函数调用的时候使用,称之为解包裹(unpacking)
    python3 中文手册:要点记录(持续更新)_第5张图片
  4. lambda:

5. 数据结构

  1. 列表对象方法:

list.append(x)
把一个元素添加到列表的结尾,相当于 a[len(a):] = [x]。

list.extend(L)
将一个给定列表中的所有元素都添加到另一个列表中,相当于 a[len(a):] = L。

list.insert(i, x)
在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 a.insert(0, x) 会插入到整个列表之前,而 a.insert(len(a), x) 相当于 a.append(x)。

list.remove(x)
删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。

list.pop([i])
从列表的指定位置删除元素,并将其返回。如果没有指定索引,a.pop() 返回最后一个元素。元素随即从列表中被删除(方法中 i 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,你会经常在Python 库参考手册中遇到这样的标记)。

list.clear()
从列表中删除所有元素。相当于 del a[:]。

list.index(x)
返回列表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。

list.count(x)
返回 x 在列表中出现的次数。

list.sort()
对列表中的元素就地进行排序。

list.reverse()
就地倒排列表中的元素。

list.copy()
返回列表的一个浅拷贝。等同于 a[:]

  1. 列表作为堆栈使用:
    堆栈作为特定的数据结构,最先进入的元素最后一个被释放(后进先出)。用 append() 方法可以把一个元素添加到堆栈顶。用不指定索引的 pop() 方法可以把一个元素从堆栈顶释放出来。
    python3 中文手册:要点记录(持续更新)_第6张图片

  2. 列表作为队列使用:
    队列作为特定的数据结构,最先进入的元素最先释放(先进先出)。不过,列表这样用效率不高。相对来说从列表末尾添加和弹出很快;在头部插入和弹出很慢。使用 collections.deque,它为在首尾两端快速插入和删除而设计。
    python3 中文手册:要点记录(持续更新)_第7张图片
    在这里插入图片描述

  3. 集合:
    集合是一个无序不重复元素的集。基本功能包括关系测试消除重复元素。集合对象还支持 union(联合),intersection(交),difference(差)和 sysmmetric difference(对称差集)等数学运算。
    大括号或 set() 函数可以用来创建集合。注意:想要创建空集合,你必须使用 set() 而不是 {}。

  4. 字典:
    字典以 关键字 为索引,关键字可以是任意不可变类型,通常用字符串或数值。如果元组中只包含字符串和数字,它可以做为关键字,如果它直接或间接的包含了可变对象,就不能当做关键字。
    必须是互不相同的(在同一个字典之内)。一对大括号创建一个空的字典: {}

    对一个字典执行 list(d.keys()) 将返回一个字典中所有关键字组成的无序列表(如果你想要排序,只需使用 sorted(d.keys()) )。

    {x: x**2 for x in range(2,4,6)} #{2: 4, 4: 16, 6: 36} 
    dict(z = I , f = lv, y = you) #{'z': 'I', 'f': 'lv', 'y': 'you'}
    
  5. 循环技巧:
    (1)在字典中循环时,关键字和对应的值可以使用 items() 方法同时解读出来:

knights = {'gallahad': 'the pure', 'robin': 'the brave'}
for k, v in knights.items():
	 print(k, v)#gallahad the pure
				#robin the brave

(2)在序列中循环时,索引位置和对应值可以使用 enumerate() 函数同时得到:

for i, v in enumerate(['tic', 'tac', 'toe']):
	print(i, v)
'''	
0 tic
1 tac
2 toe
'''

(3)同时循环两个或更多的序列,可以使用 zip() 整体打包:

questions = ['name', 'quest', 'favorite color']
answers = ['lancelot', 'the holy grail', 'blue']
for q, a in zip(questions, answers):
	print('What is your {0}?  It is {1}.'.format(q, a))
'''
What is your name?  It is lancelot.
What is your quest?  It is the holy grail.
What is your favorite color?  It is blue.
'''

(4)逆向循环序列,先正向定位序列,然后调用 reversed() 函数:

for i in reversed(range(1,10,2)):
	print(i) #9 7 5 3 1

(5)若要在循环内部修改正在遍历的序列(例如复制某些元素),建议您首先制作副本。在序列上循环不会隐式地创建副本。切片表示法使这尤其方便:

words = ['cat', 'window', 'defenestrate']
	for w in words[:]:  # Loop over a slice copy of the entire list.
       if len(w) > 6:
       		words.insert(0, w)
# words ['defenestrate', 'cat', 'window', 'defenestrate']
  1. 循环技巧:

你可能感兴趣的:(python)