晨测
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=” ", file = sys.out)
参数:
object -> 一次性输出多个对象,多个对象,实参之间使用逗号分割
sep -> 多个对象输出展示时,使用的分隔符,默认是" "
end -> 设定字符串的结束字符默认是"
"
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 : 是否倒序,可选参数.默认值是False
key: 可选成参数,用户自定义的函数(用来设定比价规则)
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. 编解码函数(爬虫: 对数据进行解码)
一个例子
百度(不是只有国内访问)
xa24x345
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. 字符串的转义字符
转义符,续航符
续航符: 字符串的行尾添加此字符,可以在下一行继续编写字符内容
转义符: 在后面跟上特定的字符,实现特定的功能效果