内容回顾:
|-- 什么是函数?
|-- 为什么使用函数
|-- 如何定义函数?
|-- 函数的调用
|-- 函数分类
|-- 全局变量和局部变量
|-- 函数的调用过程
|–函数的递归
|-- 函数的参数|-- 默认值
|-- 可变参数
|-- 命名参数(关键字参数)
|-- 几种综合在一起的
今日目标:
|-- 匿名函数
|-- 偏函数
|-- 全局函数(自学)
|-- 闭包
|-- 装饰器
|-- 内置模块
匿名函数
def ():
# 函数体
注意:在早期,python并没有匿名函数,lambda表达式
lambda表达式:
lambda [参数1,参数2,n...]: 代码
优点:简化了函数定义
缺点:降低了代码的可读性,提升复杂度
偏函数
使用functools.partial函数将一个函数的某些默认值转换为其他想要的默认值函数
import functools
新函数 = functools.partial(函数, 参数=新的默认值)
python内置的常见模块
|-- random
|-- math
|-- os
|-- os.path
|-- sys
|-- time
|-- datetime
|-- hashlib
|-- base64
|-- hmac
|-- uuid
……
1、什么是模块?
模块(module),它特指就是xxx.py文件
2、如何导入模块
如果默认没有在包中
import xxxx
- import random
- import uuid, sys
- import os.path as 别名
from 包路径 import 模块名称
from 包路径.模块名称 import 方法、类、变量
from functools import partial
3、常见的内置模块
random
目前所有的计算机API实现的随机都是伪随机数
|-- random.random() # 返回一个[0, 1)的随机数
|-- random.randint(n, m) # 返回[n, m]范围内的随机整数
|-- random.randrange(n, m) # 返回[n, m)范围内的随机整数
|-- random.choice(sequence) # 从一个序列中随机返回一个元素
|-- random.uniform(n, m) # 返回[n, m]范围内的随机数
|-- random.shuffle(列表) # 随机洗牌列表中的元素顺序
math
进行数学计算
|-- math.ceil(num) # 向上取整
|-- math.floor(num) # 向下取整
|-- math.abfs(num) # 求绝对值
|-- math.modf(num) # 以元组的形式返回整数和小数部分
|-- math.pi # 圆周率
|-- math.pow(num, num2) # 幂次方 num**num2
|-- math.sqrt(num) # 开平方根
os
主要管理操作系统文件管理系统
|-- chdir(path) # 修改当前工作空间路径的
|-- curdir # 当前工作空间的路径
|-- os.getcwd() # 获取路径的绝对路径
|-- os.path.abspath(path) # 获取路径的绝对路径
|-- os.cpu_count() # 获取当前电脑的CPU架构
|-- os.device_encoding(fd) # 获取设备的编码
|-- os.getpid() # 获取进程编号
|-- os.getppid() # 获取当前进程的父进程编号
|-- os.kill() # 通过编号杀死进程
|-- os.listdir(path) # 遍历path路径下的所有文件和文件夹,以列表形式返回名称
|-- os.mkdir() # 创建一个单层文件夹(目录)
|-- os.makedirs() # 创建多次目录
|-- os.name # 获取操作系统名称
|-- os.rename() # 重命名
|-- os.remove() # 移除文件
|-- os.removes() # 移除多次目录
|-- os.rmdir() # 删除目录
|-- os.sep # 当前系统对应的文件分隔符