晨测
global和nonlocal区别
写一个递归的阶乘
回顾
1.global和nonlocal 关键字
 2.函数的递归
 1.查找规律
 2.设置退出条件
 3.性能
 3.闭包
 外函数中定义一个内函数
 外函数的返回值是内函数的引用
 内函数引用外函数的变量,未来外函数执行完毕,不会释放被内函数引用变量
 4.总结
 1.变量
 2.标识符
 3.数据类型
 4.运算符
 5.分支结构
 6.循环结构
 7.函数
作业解答
没有留
今日概要
1. python中的内建函数
2. python中的高阶函数
3. python中共的字符串相关函数
一 python中的内建函数
1. 内建函数
可以直接在当前文件中使用的函数
 调用:
 函数名称(实参列表)
 参数类型:有可能是函数,传递的是函数的引用
abs();			dict();			help();			min();			setattr();		
all();			dir();			hex();			next();			slice();		
any();			divmod();		id();			object();		sorted();		
ascii();		enumerate();	input();		oct();			staticmethod();		
bin();			eval();			int();			open();			str();		
bool();			exec();			isinstance();	ord();			sum();		
bytearray();	filter();		issubclass();	pow();			super();		
bytes();		float();		iter();			print();		tuple();		
callable();		format();		len();			property();		type();		
chr();			frozenset();	list();			range();		vars();		
classmethod();	getattr();		locals();		repr();			zip();		
compile();		globals();		map();			reversed();		__import__();		
complex();		hasattr();		max();			round();			 
delattr();		hash();			memoryview();	set();		
2. 输入输出函数
1. 输出函数:
print() # 打印输出
# 在python2.x 使用关键字 print 来输出内容
语法:print(*objects, sep=" “, end=”\n", file = sys.out)
参数:
 object -> 一次性输出多个对象,多个对象,实参之间使用逗号分割
 sep -> 多个对象输出展示时,使用的分隔符,默认是" "
 end -> 设定字符串的结束字符默认是"\n"
 file -> 输出的位置, 默认是控制台
返回值:
 无返回值,None
2. 输入函数:
input() #从标准的输入中读取一行文本数据
# 默认的标准输入就是键盘,返回值string类型
语法:input(prompt)
 参数:
 prompt 提示字符信息
 返回值:
 返回从键盘接收到用户输入的字符串的数据
3. 数据类型,类型转换相关函数
int()       # 将一个字符串或者数字数据转换成整型
float()     # 将其他数据类型转换成浮点类型
bool()      # 将其他数据类型转换成bool类型
complex()   # 将其他数据类型转换成复数类型(基本上用不到)str()       # 将其他数据类型转换成字符串类型
list()      # 创建空列表,将其他数据类型转换成列表
tuple()     # 创建空元组,将其他数据类型转换成元组
dict()      # 创建空字典,将其他数据类型转换成字典
set()       # 创建空集合,将其他数据类型转换成集合
4. 变量(对象)信息相关的
type()      # 获取当前的对象的数据类型
id()        # 获取当前对象的内存地址(唯一标识)
globals()   # 获取全局变量的可用变量(以字典的形式返回)
locals()    # 获取当前作用域中的可用的局部变量,以字典的类型返回
查看函数文档和帮助的函数
help()函数
函数.doc
###5. 数学相关的
1. abs() 获取以数据的绝对值
语法:变量=abs(数据)
例如:
num = -666.547
res = abs(num)
print(res)   
2. sum() 获取容器中的和
语法:结果=sum(容器数据)
 参数:允许是list,tuple,set,dict(只对字典的键进行操作,值的话不管)
 例如:
list1 = {1:'zhagnsan',4:"hae",56:"asdf",2:"asd"}res = sum(list1)print(res)
# 这里 字典的求和是对字典中的键进行操作,而字典的值不动
3. max() 获取容器中的最大值
语法:结果=max(容器数据)
 参数:允许是list,tuple,set,dict(只对字典的键进行操作,值的话不管)
例如:
list1 = {1:'zhagnsan',4:"hae",56:"asdf",2:"asd"}res = max(list1)print(res)
# 这里 字典的求和是对字典中的键进行操作,而字典的值不动
# 若比较字符串,则比较的是字符对应的ASCII编码的数值大小
4. min() 获取容器中的最小值
语法:结果=min(容器数据)
 参数:允许是list,tuple,set,dict(只对字典的键进行操作,值的话不管)
例如:
list1 = {1:'zhagnsan',4:"hae",56:"asdf",2:"asd"}res = min(list1)print(res)
# 这里 字典的求和是对字典中的键进行操作,而字典的值不动
# 若比较字符串,则比较的是字符对应的ASCII编码的数值大小
5. round() 四舍五入操作(针对数值类型数据)
语法:结果=round(浮点数)
例如:
num = 5.5
res = round(num)print(res)
# 这里 字典的求和是对字典中的键进行操作,而字典的值不动
# 若比较字符串,则比较的是字符对应的ASCII编码的数值大小# 注意: x.5 的round结果是:x是奇数 进1,x是偶数 不进1
6. range()函数 用于生成列表
格式:
 range(start,end,step)
 返回值:
 数值构成的列表类型
7. pow()函数 用于计算幂指数
格式:
 pow(x,y)
 参数:
 x: 底数
 y: 次方数
 返回值:
 运算后的结果
6. 进制转换函数
bin()
将数值转换成2进制参数:其他数值类型数据返回值:2进制数值类型
oct()
将数值转换成8进制参数:其他数值类型数据返回值:8进制数值类型
hex()
将数值转换成16进制参数:其他数值类型数据返回值:16进制数值类型
7. 字符ASCII转换的函数
ord() 将字符转换成其他对应的ASCII码语法:res = ord(字符)chr() 将对应的ASCII码转换成其他字符语法:res = chr(ASCII码)
二 python中的高阶函数
1. sorted()函数
语法:sorted()
功能:对一组数据进行排序操作
参数:iterable : 迭代器 可以迭代的一组数据(迭代器,复杂的数据类型)reverse : 是否倒序,可选参数.默认值是Falsekey: 可选成参数,用户自定义的函数(用来设定比价规则)func 函数的引用
返回值:排序后的结果数据
2. map()函数
语法: map(func, iterable)
功能:将可迭代的数据,获取一个处理后的数据的迭代器
参数:func: 针对数据操作的函数iterable: 可以迭代的数据(迭代器,复杂的数据的类型的数据,range()函数申城的一组数据)
返回值:迭代器
3. reduce()函数
语法: reduce(func, iterable)
功能: 从我们的iterable中获取两个值,移动到func中进行处理和运算,将计算结果和iterable中的后续的一个数据进行相同的操作,再次移动到func中进行处理和运算  
重复上述操作,可迭代的数据处理完毕后,此函数结束 
参数:func: 针对数据操作的函数iterable: 可以迭代的数据(迭代器,复杂的数据的类型的数据,range生成的列表)
返回值: 最终计算的结果 练习:求1-100之间的所有偶数的和求5的阶乘使用lambda表达式重构代码
4. filter()函数
语法: filter(func, iterable)
功能: 过滤数据,用户自定义函数需要设置返回值,如果返回值为False,则过滤掉此数据从我们的iterable中获取一个值,移动到func中进行判断,如果返回值为False,则过滤掉此数据
重复上述操作,可迭代的数据处理完毕后,此函数结束 
参数: func: 针对数据操作的函数iterable: 可以迭代的数据(迭代器,复杂的数据的类型的数据,range生成的列表)
返回值: 迭代器
三 python中的字符串相关函数
1. 字符串相关概述
由多个字符组成的字符串数据
通常都是由单引号’ ‘双引号" "三引号’’’ ‘’’ “”" “”" 抱起来的数据
 标识符: 变量 函数 参数
2. 编解码函数(爬虫: 对数据进行解码)
一个例子
百度(不是只有国内访问)
\xa24\x345 
Unicode编码(万国码)
常见的编码格式
ASCII 编码(西方英语国家)
 GB2312 编码(中国) -> 只能表示常用的6000+汉字
 GBK 编码(中国)
 GB18030 编码(中国)
 BIG5 编码(中国)
 Unicode 编码(所有国家所有字符)
 utf-8 utf-16 utf-32
encode() 函数: 将我们的数据进行Unicode编码
语法:
 result = encode(数据)
decode() 函数: 将我们的Unicode编码的数据进行解码
语法:
 result = decode(Unicode数据)
3. 字符串常见操作
常见操作:
 + 字符串连接符
 * 字符串复制
 [] 字符串索引操作
 [::]字符串分片操作(重点) 类似于: range()函数
 注意:
 字符串的索引和切片操作,支持访问,不支持修改
 分片操作中: 参数三表示步长step
3. 字符串的转义字符
\ 转义符,续航符续航符: 字符串的行尾添加此字符,可以在下一行继续编写字符内容转义符: 在\后面跟上特定的字符,实现特定的功能效果