map函数
用法一:
map(函数,序列) ---- 将原序列中的元素,按照函数给定的标准转换成新的序列
函数要求:
是一个函数
有一个参数,指向后面序列中的元素
需要一个返回值,返回值就是新序列中的元素
用法二:
map(函数,序列一,序列二)
函数的要求:
是一个函数
有两个参数,分别指向后面的两个序列中的元素
需要一个返回值,返回值就是序列中的元素
reduce函数
reduce(函数,序列,初始化)
函数的要求:
函数
有且只有两个参数:第一个参数第一次是指向默认值,从第二次开始指向上一次的计算结果
第二个参数指向序列中的每个元素
有一个返回值:返回值决定合并规则
# 求所有元素的和
nums = [23, 34, 56, 67, 8]
def f(x, y):
return x+y
result = reduce(f, nums, 0)
print(result)
# 练习:求所有数字的乘积
nums = [23, 8.9, 'abc', True, '2']
result = reduce(lambda r, item: r*(item if type(item) in [int, float] else 1), nums, 1)
print(result)
模块
模块:一个py文件就是一个模块,文件名就是模块名
Python中可以在一个模块中去使用另一个模块(命名要规范)中所有的全局变量,但是需要先导入
导入模块:
1:直接导入模块
import 模块名 ---- 导入指定模块,导入后需要通过’模块名.xxx’的形式取使用中内容
2:直接导入模块中的变量
from 模块名 import 变量一, 变量二… ---- 导入指定模块中的指定变量;导入后直接使用变量
3:重命名
import 模块名 as 新模块名 ---- 给模块重命名,重命名后使用新的名字
from 模块名 import 变量一 as 新变量一,新变量二,新变量三 ------ 导入的时候给指定变量重命名
4:通配符
from 模块名 import * ---- 导入指定模块中所有的全局变量
导入模块的原理:不管以什么杨的方式导入模块,在导入模块的时候系统会自动进入被导入的模块,将模块中的代码全部执行一遍
Python导入模块的时候会自动检测被导入的模块之前是否已经导入过,如果导入过不会重复导入
被导入的代码段放在if __name__ == '__main__':
不会被导入
下面这个if外面的代码才是会被其他模块执行的代码
if __name__ == '__main__':
这个if里面的代码不会被其他模块执行,只能被自己执行
pass
包
包:就是用来管理多个模块的一种特殊的文件夹(包含__init __.py
文件的文件夹)
通过包导入内容的时候,会先执行__init__.py
文件中的内容