#!/usr/bin/env python # coding: utf-8 # # Table of Contents #
# # Python 内置函数 # # python内置了很多简单实用的内置函数,日常工作中会很常用到这些函数,通过这些内置函数能够提高代码得简洁性,节省工作量。 # ![inside-function](inside-function.png) # # 查看更多详细:[官方](https://docs.python.org/3/library/functions.html?highlight=format#float) # ## abs # # 取绝对值 # In[1]: abs(-10) # ## bool # 求布尔值 # In[2]: bool(True) bool(False) bool(0) bool(1) bool(None) s = "" bool(s) t = () bool(t) l = [] bool(l) d = {} bool(d) # False None 0 "" () [] {} # # 标准值 **False** 和 **None**,所有类型的数字 **0**(包括浮点型、长整型和其他类型)、 **空序列** (比如空字符串、元组合列表)以及空的字典都为 **假(False)**,其他得一切都为 **真(True)** 和特殊值 **True**。 # ## all # 所有为真,结果为真 # In[3]: all([1, 2, 3, None]) # ## any # 只要有真,结果就为真 # In[4]: any([1, 2, 3, None]) # ## 进制转换 # In[5]: # bin() 转换2进制 0b bin(10) # oct() 转换8进制 0o oct(10) # hex() 转换16进制 0x hex(10) # ## 编码 # In[6]: # bytes() 字符串转换成字节 name = '梁先森' b = bytes(name, encoding="utf-8") print(b) # In[7]: # str() 字节转换字符串 s1 = str(b, encoding="utf-8") print(s1) # In[8]: # ASCII 转换 bm = ord('A') # 输入字符返回ascii中对应位置 print(bm) ch = chr(bm) # 通过ascii中对应位置转换对应的的字符 print(ch) # ## pow # 幂运算 # In[9]: 2**10 pow(2, 10) # ## divmod # 求商和余数 # In[10]: divmod(97, 10) # ## round # 四舍五入 # In[11]: round(91.79) # ## max,min,sum # 求最大,最小,求和. # In[12]: max([11,22,33]) min([11,22,33]) sum([11,22,33]) # ## len # 获取一个序列长度,有多少元素 # In[13]: len('liang') len((1, 2, 3,)) len([1, 'o', 3, 'p']) len({"name": "Kevin", "age": 18, "job": "programmer"}) # 字典的长度即多少个key。 # ## zip # 拉链,交叉序列,不相同长度序列多出的会丢弃。 # In[14]: lt = [11, 22, 33] ld = ['aa', 'bb', 'cc', 'dd'] zip(lt, ld) print(list(zip(lt, ld))) # ## sorted # 排序 # In[15]: sorted([3,2,1,4,5,6,9,]) # ## reversed # 反转序列 # In[16]: l = [11, 22, 33, 44] print(list(reversed(l))) # 反转,和list的reverse方法一样 print(list(reversed("liang"))) l.reverse() print(l) # ## help # 看源码信息 # In[17]: help(list) # ## dir # 快速查看类和对象都有哪些属性和方法 # In[18]: dir(list) # ## isinstance # 判断对象是否是某个类的实例 # In[19]: isinstance([], list) # ## eval # 执行表达式,并返回结果 # In[20]: eval("print(123)") # ## compile # 编译字符串,将字符串编译成python代码交给 single,eval,exec,执行 # In[21]: r = compile("print(123)", "this is string", "exec") # 参数: python字符串代码, 字符串说明,mode制定编译种类single,eval,exec print(r) #执行代码,接收代码和字符串都能执行,没有返回值 exec(r) # exec() 执行编译后python的代码 # ## filter # 对一个可迭代对象进行筛选 # In[22]: # 参数1, 函数 # 参数2, 一个可迭代对象(序列) """ filter() 内部实现感觉应该是这样: result = [] for item in 参数2: r = 参数1(item) # 执行结果 if r: # 如果合法 result.append(item) return result # 全部执行完了,吐出过了条件的序列 """ # filter ,循环第二个参数,让每个循环元素执行函数,如果函数返回True,表示元素合法 def f1(num): if num > 5: return num li = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] result = filter(f1, li) result # 可迭代对象 list(result) # 变成list # ## map # 迭代操作,遍历序列,对序列每个元素进行操作 # In[23]: def f2(num): return num + 100 list(map(f2, li)) # 对list中的每个元素 + 100 # 这里你可能会感觉,**map()** 和 **filter()** 感觉功能一样啊 # In[24]: """ map() 内部实现感觉是这样: for item in 参数2: return 参数1(item) # 执行结果 """ # 一不一样试一下不就知道了 list(map(f1, li)) # **接下来看图理解:** # ![filter-function](filter-function.png) # ![map-function](map-function.png)