day13 内置函数

参考资料: https://www.processon.com/view/link/5b4ee15be4b0edb750de96ac

内置函数:

作⽤域相关:

locals()     返回当前作用域中的名字

globals()    返回全局作用域中的名字

迭代器相关:   

range()    ⽣成数据   

next()   迭代器向下执⾏ ⼀次, 内部实际使用了__next__()⽅法返回迭代器的下一个项目   

iter()     获取迭代器, 内部实际使用的是__iter__()方法来获取迭代器

 

字符串类型代码的执行   

eval()   执行字符串类型的代码. 并返回最终结果

exec()       执行字符串类型的代码

compile()   将字符串类型的代码变异. 代码对象能够通过exec语句句来执行或者eval()进行求 值

有返回值的字符串形式的代码用eval(). 没有返回值的字符串形式的代码用exec(). 一般很少用 到compile()

输入和输出相关:   

input()    获取用户输入的内容   

print()    打印输出 内存相关:   

hash()    获取到对象的哈希值(int, str, bool, tuple)   

id()        获取到对象的内存地址

文件操作相关:   

open()    用于口打开⼀一个文件, 创建一个文件句柄

模块相关:   

__import__()    用于动态加载类和函数

帮助:    help()    函数用于查看函数或模块用途的详细说明

调用相关:   

callable()    用于检查一个对象是否是可调用的. 如果返回True, object有可能调用失败, 但 如果返回False. 那调用绝对不会成功

查看内置属性:    

dir()    查看对象的内置属性, 方法. 访问的是对象中的__dir__()⽅方法 基础数据类型相关:    

数字相关:        

bool()  将给定的数据转换成bool值. 如果不给值. 返回False       

int()     将给定的数据转换成int值. 如果不给值, 返回0       

float()  将给定的数据转换成float值. 也就是⼩小数       

complex()  创建一个复数. 第一个参数为实部, 第二个参数为虚部. 或者第一个参数直接 用字符串来描述复数

 

进制转换:       

bin()    将给的参数转换成二进制       

otc()    将给的参数转换成八进制       

hex()    将给的参数转换成十六进制   

数学运算:       

abs()            返回绝对值       

divmode()     返回商和余数       

round()        四舍五入        

pow(a, b)    求a的b次幂, 如果有三个参数. 则求完次幂后对第三个数取余       

sum()    求和       

min()    求最小值       

max()    求最大值

和数据结构相关:   

列列表和元组:       

list()        将一个可迭代对象转换成列列表       

tuple()    将一个可迭代对象转换成元组       

reversed()    将一个序列列翻转, 返回翻转序列列的迭代器       

slice()    列表的切片

字符串相关:       

str()            将数据转化成字符串       

format()     与具体数据相关, 用于计算各种小数, 精算等

bytes()  把字符串转化成bytes类型

bytearray()    返回一个新字节数组. 这个数字里的元素是可变的, 并且每个元素的值得范 围是[0,256)

memoryview()  查看bytes在内存中的情况

ord()    输入字符找带字符编码的位置       

chr()    输入位置数字找出对应的字符       

ascii()  是ascii码中的返回该值 不是就返回\u...

repr()    返回一个对象的官方表示形式

数据集合:       

dict()    创建一个字典 

set()     创建一个集合       

frozenset()    创建一个冻结的集合. 冻结的集合不能进行添加和删除操作   

其他相关:        

len()    返回一个对象中的元素的个数       

sorted()    对可迭代对象进行排序操作

enumerate()    获取集合的枚举对象

all()      可迭代对象中全部是True, 结果才是True       

any()    可迭代对象中有一个是True, 结果就是True

zip()    函数用于将可迭代的对象作为参数, 将对象中对应的元素打包成一个个元组, 然 后返回由这些元组成的开了表. 如果各个迭代器的元素个数不一致, 则返回列表长度与最短的对象相同.

filter()     过滤     

map()    会根据提供的函数对指定序列列做映射(lamda)

 

⼀. lamda匿名函数.

lambda表示的是匿名函数. 不需要用def来声明, 一句话就可以声明出一个函数

语法: 函数名 = lambda 参数: 返回值

注意: 1. 函数的参数可以有多个. 多个参数之间用逗号隔开

2. 匿名函数不管多复杂. 只能写一行, 且逻辑结束后直接返回数据

3. 返回值和正常的函数一样, 可以是任意数据类型
匿名函数并不是说一定没有名字. 这里前面的变量就是一个函数名. 说他是匿名原因是我们通 过__name__查看的时候是没有名字的. 统一都叫lambda. 在调用的时候没有什么特别之处. 像正常的函数调用即可

 

⼆. sorted()   

排序函数.     

语法: sorted(Iterable, key=None, reverse=False)       

Iterable: 可迭代对象       

key: 排序规则(排序函数), 在sorted内部会将可迭代对象中的每一个元素传递给这个函 数的参数. 根据函数运算的结果进行排序       

reverse: 是否是倒叙. True: 倒叙, False: 正序

 

三. filter()   

筛选函数    语法: filter(function. Iterable)       

function: 用来筛选的函数. 在filter中会自动的把iterable中的元素传递给function. 然后 根据function返回的True或者False来判断是否保留此项数据     

Iterable: 可迭代对象 

 

四. map()    映射函数   

语法: map(function, iterable) 可以对可迭代对象中的每一个元素进行映射. 分别取执行 function   

计算列表中每个元素的平方 ,返回新列表 

 

五. 递归    在函数中调用函数本身. 就是递归  

在python中递归的深度最大到998 (经测试)

递归的应用:     我们可以使用递归来遍历各种树形结构, 比如我们的文件夹系统. 可以使用递归来遍历该 文件夹中的所有文件

 1 import os 
 2 def read(filepath, n):    
 3     files = os.listdir(filepath)    # 获取到当前文件夹中的所有文件    
 4     for fi in files:    # 遍历文件夹中的文件, 这里获取的只是本层文件名                    
 5          fi_d = os.path.join(filepath,fi)  # 加入文件夹 获取到文件夹+文件       
 6          if os.path.isdir(fi_d): # 如果该路径下的文件是⽂文件夹           
 7              print("\t"*n, fi)           
 8              read(fi_d, n+1)     # 继续进行相同的操作        
 9         else:            
10         print("\t"*n, fi)   # 递归出口. 最终在这里隐含着return
11 #递归遍历⽬目录下所有文件
12  read('../old/', 0)       

六. 二分查找   

二分查找. 每次能够排除掉一半的数据.  查找的效率非常高. 但是局限性比较大. 必须是有 序列才可以使⽤二分查找     要求: 查找的序列必须是有序列. 

 

posted @ 2018-11-19 21:15  哄哄的锤石真菜  阅读(195)  评论(0编辑  收藏  举报