zl程序教程

您现在的位置是:首页 >  Python

当前栏目

python中文官方文档记录

2023-03-14 09:51:23 时间

随笔记录

python3.10中文官方文档百度网盘链接:https://pan.baidu.com/s/18XBjPzQTrZa5MLeFkT2whw?pwd=1013
提取码:1013

1、python解释器

启动解释器的另一种方式,建议用单引号标注整个 commandpython -c command [arg] ...

Python 模块也可以当作脚本使用。输入: python -m module [arg] ... ,会执行 module 的源文件,这跟在命令行把路径写全了一样。

解释器读取命令行参数,把脚本名与其他参数转化为字符串列表存到sys.argv,import sys

除法运算:( / )返回浮点数,// 运算返回整数.

交互模式下,上次输出的表达式会赋给变量 _

2、python速览

内置支持 复数,后缀 j 或 J 用于表示虚数(例如 3+5j )。

print() 函数输出的内容更简洁易读,它会省略两边的引号,并输出转义后的特殊字符。

使用 原始字符串,在引号前添加 r 即可:print(r'C:\some\name')

字符串字面值可以实现跨行连续输入。实现方式是用三引号: """...""" 或 '''...''' ,字符串行尾会自动加上回车换行,如果不需要回车换行,在行尾添加 \ 即可.

相邻的两个或多个 字符串字面值 (引号标注的字符)会自动合并.

索引越界会报错, 但是,切片会自动处理越界索引.

Python 字符串不能修改,是 immutable 的。因此,为字符串中某个索引位置赋值会报错.

列表

遍历某个集合的同时修改该集合的内容,很难获取想要的结果。要在遍历时修改集合的内容,应该遍历该集合的副本或创建新的集合:for user, status in users.copy().items():

range右边界取不到,sum(range(4))返回6。

else 子句可以属于 for 循环,不属于 if 语句

match 语句接受一个表达式并将它的值与以一个或多个 case 语句块形式给出的一系列模式进行比较。

1. def http_error(status): #如果status传404,返回Not found
2.   match status:
3.     case 400:
4.       return "Bad request"
5.     case 404:
6.       return "Not found"
7.     case 401 | 403 | 404:
8.       return "I'm a teapot"
9.     case _:  #通配符,一定会匹配成功
10.       return "Something's wrong with the internet"

“|” 和”or ”都表示或者,&表示且

3、其他流程控制工具

没有 return 语句的函数也返回值,只不过这个值比较是 None (是一个内置名称)。

return 语句不带表达式参数时,返回 None。

列表append()相当于result = result + [a]

函数

默认值只计算一次

1. def f(a, L=[]):
2.     L.append(a)
3.     return L
4.
5. print(f(1))#[1]
6. print(f(2))#[1, 2]
7. print(f(3))#[1, 2, 3]

*name 形参接收一个 元组,**name 形式时,接收一个字典,def cheeseshop(kind, *arguments, **keywords):

def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):仅限位置形参应放在 / (正斜杠)前,/ 后可以是 位置或关键字 或 仅限关键字 形参。应在参数列表中第一个 仅限关键字 形参前添加。使用仅限位置形参,可以让用户无法使用形参名

1. >>> def pos_only_arg(arg, /):
2. ... print(arg)
3. ...
4. >>> def kwd_only_arg(*, arg):
5. ... print(arg)

1. >>> pos_only_arg(1)
2. 1
3. >>> pos_only_arg(arg=1) #报错
4. >>> kwd_only_arg(3)#报错
5. >>> kwd_only_arg(arg=3)
6. 3

字典可以用 ** 操作符传递关键字参数

1. >>> def parrot(voltage, state='a stiff', action='voom'):
2. ... print("-- This parrot wouldn't", action, end=' ')
3. ... print("if you put", voltage, "volts through it.", end=' ')
4. ... print("E's", state, "!")
5. ...
6. >>> d = {"voltage": "four million", "state": "bleedin' demised", "action": "VOOM"}
7. >>> parrot(**d)
8. -- This parrot wouldn't VOOM if you put four million volts through it. E's bleedin' demised !

lambda小巧灵活

1. >>> def make_incrementor(n):
2. ... return lambda x: x + n
3. ...
4. >>> f = make_incrementor(42)
7. >>> f(1)
8. 43
1. >>> pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
2. >>> pairs.sort(key=lambda pair: pair[1]#排序

4、数据结构

list.extend (iterable)   用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表).
pop()、append()  类似栈,后进先出

实现队列(先进先出)最好用 collections.deque ,可以快速从两端添加或删除元素。

queue.append后入,queue.popleft()前出,删除最左边元素

map接收一个函数f和一个list,并通过把函数f依次作用在list的每个元素上,得到一个新的list并返回。

list(map(lambda x: x**2, range(10)))等价于[x**2 for x in range(10)],

#连续使用for循环
1. >>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y] 2. [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)] 3. >>> vec = [[1,2,3], [4,5,6], [7,8,9]] 4. >>> [num for elem in vec for num in elem] 5. [1, 2, 3, 4, 5, 6, 7, 8, 9]

t = 12345, 54321, 'hello!' 等价于12345, 54321, 'hello!' = t    默认t为一个元组,输入元组时,圆括号可有可无

u = t, (1, 2, 3, 4, 5)

((12345, 54321, 'hello!'), (1, 2, 3, 4, 5))

只有一个元素的元组可以通过在这个元素后添加逗号来构建  

集合是由不重复元素组成的无序容器.

set('abracadabra')     返回   {'a', 'r', 'b', 'c', 'd'}

对字典执行 list(dic) 操作,返回该字典中所有键的列表,sorted(dic)字典可以按键 排序

dict() 构造函数可以直接用键值对序列创建字典:

1. >>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
2. {'sape': 4139, 'guido': 4127, 'jack': 4098}
3. >>> dict(sape=4139, guido=4127, jack=4098)
4. {'sape': 4139, 'guido': 4127, 'jack': 4098}

enumerate() 函数可以同时取出位置索引和对应的值

同时循环两个或多个序列时,用 zip() 函数可以将其内的元素一一匹配:

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

for i in reversed(range(1, 10):倒叙显示

5、输入与输出

f'Results of the {year} {event}'

str.format()

把值转化为字符串,str() 函数返回供人阅读的值, repr() 则生成适于解释器读取的值,多一个‘’,s='hello moto',repr(s)="'hello moto'"

str.rjust() 方法通过在左侧填充空格,同类方法还有str.ljust() 和 str.center() 

>>>str = 'runoob'
>>> str.center(20, '*')
'*******runoob*******'
>>> str.center(20)
'       runoob       '

str.zfill() ,该方法在数字字符串左边填充零

json.load:表示读取文件,返回python对象

json.dump:表示写入文件,文件为json字符串格式,无返回

json.dumps:将python中的字典类型转换为字符串类型,返回json字符串 [dict→str]

json.loads:将json字符串转换为字典类型,返回python对象 [str→dict]

load和dump处理的主要是 文件

loads和dumps处理的是 字符串

6、类

如果同样的属性名称同时出现在实例和类中,则属性查找会优先选择实例:

7、标准库简介

删除文件:os.remove() ;    删除一个空目录:os.rmdir()

shutil.copyfile('data.db', 'archive.db')复制出一个新文件; shutil.rmtree(directory_path),删除文件

shutil.move('/build/executables', 'installdir')  重命名文件

glob 模块提供了一个在目录中使用通配符搜索创建文件列表的函数

1. >>> import glob
2. >>> glob.glob('*.py')
3. ['primes.py', 'random.py', 'quote.py']

终止脚本的最直接方法是使用 sys.exit()

 

 

于表达,疏于张扬,却巍峨持重