day9-基础函数的学习(四)
这几天一直赶着写写作业,博客的书写又落下了,要加油鸭,开写
今日份目录
1.内置函数
2.递归函数
开始今日份总结
1.内置函数
内置函数就是python内部包含的函数,总计有68种,不过有些事真的天天用,按照个人以及老师的想法会对函数标注重要性
1.1 三星函数
1.1.1 作用域相关函数
这俩个函数在学闭包的时候用的比较多
locals:函数会以字典的类型返回当前位置的全部局部变量
globals:函数以字典的类型返回全部全局变量
1.1.2 输入输出相关
这俩基本是天天用吧
input:用户交互,接收到的数据都是string类型
print:打印输出,print的带参用法
print(1,2,3,sep='|') # 设置打印的分隔符 print(1,2,3,end=' ') # 设置结束时的格式 f = open('log','w',encoding='utf-8') print('写入文件',file=f)#用打印的方式将打印的内容直接写入到文件
1.1.3内存相关
hash:获取一个对象(可哈希对象:int,str,bool,tuple)的哈希值
id:用于获取对象的内存地址,例如:深浅copy中
1.1.4 文件操作
这个文件操作都在用啊
open: 函数用于打开一个文件,创建一个文件句柄(file对象),相关的方法才可以调用
1.1.5帮助
help:函数用于查看函数或模块用途的详细说明
1.1.6调用相关
callable:函数用于检查一个对象是否可以调用,返回True调用对象有可能不成功,但是False是绝对调用失败
def func(): pass func1 = 77 print(callable(func)) print(callable(func1))
1.1.7迭代器生成器相关
range:函数创建一个整数对象,一般用在for循环中
1.1.8数学运算
sum:求和
min:求最小值,可加key,key为函数名,通过函数的规则,返回最小值
l1 = [3, 2, 7, 9, 10] print(min(l1)) l1 = [3, 2, 7, 9, -10, -1] print(min(l1,key=abs)) dic = {'a': 3 ,'b': 2,'c': 1} def func(x): # x = a 第一次 # x = b 第二次 # x = c 第二次 return dic[x] dic['a'] 3 dic['b'] 2 dic['c'] 1 print(min(dic)) # 默认比较字典的key 将最小的key返回 print(min(dic,key=func)) # 将dic中的每个键传入函数中,以函数的返回值比较最小。 print(dic[min(dic,key=func)]) # 将dic中的每个键传入函数中,以函数的返回值比较最小。 print(min(dic,key=lambda x: dic[x])) # 将dic中的每个键传入函数中,以函数的返回值比较最小。 print(dic[min(dic,key=func)]) l1 = [('a', 3), ('b', 2), ('c', 1)] # print(min(l1)) print(min(l1,key=lambda x: x[1]))
max:求最大值,可以加key,key为函数名,通过函数返回最大值
1.1.9字符相关
str:与编码相关
bytes:与编码相关
1.1.10
len:返回长度
sorted:对可迭代对象进行排序操作
zip:将可迭代的对象作为参数,将对象中对应的元素打包成元祖,如果俩个列表元素长度不一致按照最短的操作
# l1 = [1, 2, 3] # l2 = ['a', 'b', 'c', 5] # l3 = ('*', '**', '***') # iter1 = zip(l1, l2, l3) # # print(iter1) # for i in iter1: # print(i)
filter:返回一个迭代器,类似列表推导式的筛选模式
map:返回一个迭代器,循环类似与列表推导式的循环模式
1.2 二星函数
1.2.1文字处理相关(慎重使用,尽量不用,有风险)
eval:执行字符串类型的代码,并返回最终结果。
msg ='1+2+3+4' print(eval(msg)) #结果 10
exec:执行代码串类型的代码流
s4 = ''' for i in range(1,5): print(i) ''' print(s4) #exec 执行字符串类型的代码流 exec(s4) #结果 for i in range(1,5): print(i) 1 2 3 4
complie:将字符串类型的代码编译。代码对象能够通过exec语句来执行或者eval()进行求值。(真没用过)
1.2.2查看内置属性
dir:函数不带参数时,返回当前范围内的变量;当函数带参数时,返回参数的属性与办法列表
1.2.3迭代器生成器相关
next:内部实际调用的是__next__的方法,返回迭代器的下一个项目
iter:函数用来生成迭代器(一个可迭代对象如何生成一个迭代器)
float:将整数或者是字符串转换成浮点数
1.2.4进制转换
bin:十进制转换成二进制并返回
oct:十进制转换成八进制并返回
hex:十进制转换成十六进制并返回
1.2.5 数字相关
bool:给参数转换成布尔类型
int:将一个字符串或者是数字转换为整型,有些浮点型的会直接截断小数直接取整
abs:返回一个数字的绝对值
round:保留浮点数的小数位数,默认是保留整数
pow:求幂
tuple:将一个可迭代对象转换成元祖,(如果是字典,默认将key放在元祖中)
reversed:将一个序列翻转,并返回此翻转序列的迭代器
dict:创建一个字典,与dic有区别的
set:创建一个集合
frozenset:返回一个冻结的集合
1.3 一星函数
__import__:函数用于动态加载类和函数
slice:用于生成一个切片对象,方便列表切片
format:与具体数据相关,主要用于各种小数,精算等(如果是数据分析用 的比较多)
bytearry:返回一个新字节的数组
memoryview:
ord:找到一个字符在ascii码中的位置
chr:与ord相反,输入数字找到对应ascii码中的字符
2.递归函数
人理解函数, 神理解递归
递归函数,就是函数自己调用本身,自己玩自己
def func1(): # print("我是谁") # print("我在哪") # func1() # # func1() # import sys # print(sys.getrecursionlimit()) # def func1(n): # n += 1 # print(n) # func1(n) # # func1(0) # sys.setrecursionlimit(100000) # 递归函数,会在内存空间不断地开辟新的内存空间,直到内存占满为止 # def func1(n): # n += 1 # print(n) # func1(n) # # func1(0) # 递归函数的应用: # os模块的三个知识点 # import os # # file_list = os.listdir("D:\python骑士计划3期") # (1)获取目录下所有文件和目录, 通过list返回 # # print(file_list) # # for file in file_list: # file_path = os.path.join("D:\python骑士计划3期", file) # (2)将上级文件路径与文件拼接,返回文件路径 # # print(file_path) # if os.path.isdir(file_path): # (2)判断文件是否是目录 # print("这是目录", file) # else: # print("这是文件", file) import os def read(path, n): # n = 0 file_list = os.listdir(path) # 获取目录下所有文件和目录, 通过list返回 for file in file_list: file_path = os.path.join(path, file) # 将上级文件路径与文件拼接,返回文件路径 if os.path.isdir(file_path): # 判断文件是否是目录 print(" " * n, file) read(file_path, n+1) else: print(" " * n, file) read("D:\python骑士计划3期", 0)