#!/usr/bin/env python # coding: utf-8 # # Table of Contents #

1  Python 内置函数
1.1  abs
1.2  bool
1.3  all
1.4  any
1.5  进制转换
1.6  编码
1.7  pow
1.8  divmod
1.9  round
1.10  max,min,sum
1.11  len
1.12  zip
1.13  sorted
1.14  reversed
1.15  help
1.16  dir
1.17  isinstance
1.18  eval
1.19  compile
1.20  filter
1.21  map
# # 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)