python小记 0x02

392 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

函数

同一个命名空间中定义了多个同函数名、同参数的函数 最后的那个有效

默认函数返回None

python不允许前向引用 在函数定义前不允许调用

函数形参的表现形式主要有:位置参数、关键字参数、默认值参数、可变长度参数

默认值参数必须从右到左排 并且默认值参数只生成一次

  • * 元组传参
  • ** 字典传参

函数名.__defaults__ 查看当前函数所以默认值

参数定义的顺序必须是如下关系:

位置参数

默认参数

* 可变参数

** 可变参数

位于arg或者一个后面的所有参数都只能以关键参数的形式传值

调用函数时对实参序列使用一个星号*进行解包后的实参将会被当做普通位置参数对待,并且会在关键参数和使用两个星号 ** 进行序列解包的参数之前进行处理。

序列解包相当于位置传参,比关键字优先

关键字解包相当于关键字传参,所以,序列解包要位于关键字解包之前。

lambda函数只能包含一条语句,可以调用任意函数,支持 默认值参数和关键字参数。不能随意访问全局名称空间的参数。

reduce() 迭代累加

map() 映射到每一个函数上面去

filter() 过滤这个可迭代序列

image_3Jc4pW14b3.png

Module(模块)、Class(类)、def(函数)中定义的时候,才会有作用域的概念

在if-elif-else、for-else、while、try-except\try-finally等关键字的语句块中并不会产成作用域

nonlocal 闭包作用域变量 引用最近的,非全局的作用域的变量,这个变量必须存在

image_JiM7Dc9PKH.png

image_ZHUClDAXKH.png

image_hnjZ-H7Fro.png

image_LI1AZBEMt_.png

image_SOJbwdOZ0A.png

image_7RbAJ5DsKE.png

不熟的几个函数:callable,【delattr,getattr,hasattr】,frozenset,hash,isinstense,iter,【chr,ord】【str,repr】

yield 生成器函数 每次返回一点儿

用dis模块的dis可以查看字节码指令

正则表达式

deerchao.cn

image_UlHN_pWydH.png

image_KxgLv0dDN0.png

image_1PNTGeIqNp.png

image_d66urHpjee.png

image_0XSjN5HyNX.png

re包下的东西:

compile,split,match,search,findall,sub

escape

match对象的group从0开始,groups是group非0项组合

文件 IO

UTF-8 1个字节英语 3个字节汉字

sys.getdefaultencoding()

ord获取编码,chr转换成字符

encode,decode 转换媒介 bytes()

拓展库

chardet

detect 推断编码