【超全面】Python内置函数详解(一):https://developer.aliyun.com/article/1540492
23、exec()
**描述:**执行储存在字符串或文件中的Python语句,相比于 eval,exec可以执行更复杂的 Python 代码。
*语法:exec(*object, globals, locals)
参数:
- object– 要执行的表达式。
- globals – 可选。包含全局参数的字典。
- locals – 可选。包含局部参数的字典。
案例:
执行字符串或compile方法编译过的字符串,没有返回值 s = "print('helloworld')" r = compile(s,"<string>", "exec") exec(r) helloworld x = 10 expr = """ z = 30 sum = x + y + z print(sum) """ def func(): y = 20 exec(expr) exec(expr, {'x': 1, 'y': 2}) exec(expr, {'x': 1, 'y': 2}, {'y': 3, 'z': 4}) func() 60 33 34
24、filter()
**描述:**filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
过滤器,构造一个序列,等价于:[ item for item in iterables if function(item)]
在函数中设定过滤条件,逐一循环迭代器中的元素,将返回值为True时的元素留下,形成一个filter类型数据。
**语法:**filter(function, iterable)
参数:
- function – 判断函数。
- iterable – 可迭代对象。
案例:
fil = filter(lambda x: x>10,[1,11,2,45,7,6,13])
fil <filter at 0x28b693b28c8> list(fil) [11, 45, 13] def is_odd(n): return n % 2 == 1 newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) print(list(newlist)) [1, 3, 5, 7, 9]
25、float()
**描述:**将一个字符串或整数转换为浮点数
**语法:**class float([x])
**参数:**x – 整数或字符串
案例:
float(3) 3.0 float('123') # 字符串 123.0
26、format()
**描述:**Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。基本语法是通过 {} 和 : 来代替以前的 % 。使用format()来格式化字符串时,使用在字符串中使用{}作为占位符,占位符的内容将引用format()中的参数进行替换。可以是位置参数、命名参数或者兼而有之。
format 函数可以接受不限个参数,位置可以不按顺序。
**语法:**format(value, format_spec)
参数:
案例:
# 位置参数 '{}:您{}购买的{}到了!请下楼取快递。'.format('快递小哥','淘宝','快递') '快递小哥:您淘宝购买的快递到了!请下楼取快递。' #给批量客户发短息 n_list=['马云','马化腾','麻子','小红','李彦宏','二狗子'] for name in n_list: print('{0}:您淘宝购买的快递到了!请下楼取快递!'.format(name)) 马云:您淘宝购买的快递到了!请下楼取快递! 马化腾:您淘宝购买的快递到了!请下楼取快递! 麻子:您淘宝购买的快递到了!请下楼取快递! 小红:您淘宝购买的快递到了!请下楼取快递! 李彦宏:您淘宝购买的快递到了!请下楼取快递! 二狗子:您淘宝购买的快递到了!请下楼取快递! #名字进行填充 for n in n_list: print('{0}:您淘宝购买的快递到了!请下楼取快递!'.format(n.center(3,'*'))) *马云:您淘宝购买的快递到了!请下楼取快递! 马化腾:您淘宝购买的快递到了!请下楼取快递! *麻子:您淘宝购买的快递到了!请下楼取快递! *小红:您淘宝购买的快递到了!请下楼取快递! 李彦宏:您淘宝购买的快递到了!请下楼取快递! 二狗子:您淘宝购买的快递到了!请下楼取快递! '{0}, {1} and {2}'.format('gao','fu','shuai') 'gao, fu and shuai' x=3 y=5 '{0}+{1}={2}'.format(x,y,x+y) # 命名参数 '{name1}, {name2} and {name3}'.format(name1='gao', name2='fu', name3='shuai') 'gao, fu and shuai' # 混合位置参数、命名参数 '{name1}, {0} and {name3}'.format("shuai", name1='fu', name3='gao') 'fu, shuai and gao' #for循环进行批量处理 ["vec_{0}".format(i) for i in range(0,5)] ['vec_0', 'vec_1', 'vec_2', 'vec_3', 'vec_4'] ['f_{}'.format(r) for r in list('abcde')] ['f_a', 'f_b', 'f_c', 'f_d',
27、frozenset()
**描述:**frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。
**语法:**class frozenset([iterable])
**参数:**iterable – 可迭代的对象,比如列表、字典、元组等等。
案例:
创建一个不可修改的集合。 frozenset([1,1,3,2,3]) frozenset({1, 2, 3})
28、getattr()
**描述:**获取对象的属性
**语法:**getattr(object, name[, default])
参数:
- object – 对象。
- name – 字符串,对象属性。
- default – 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError。
案例:
class Age(object): age = 1 my_a = Age() getattr(my_a, 'age') # 获取属性 bar 值 1 getattr(my_a, 'age1') 'Age' object has no attribute 'age1'
29、gobals()
描述: 函数会以字典类型返回当前位置的全部全局变量。
**语法:**globals()
参数:无
案例:
a='runoob' print(globals()) # globals 函数返回一个全局变量的字典,包括所有导入的变量
30、hasattr()
**描述:**函数用于判断对象是否包含对应的属性。
**语法:**hasattr(object, name)
参数:
- object – 对象。
- name – 字符串,属性名。
案例:
class Coordinate: x = 10 y = -5 z = 0 point1 = Coordinate() print(hasattr(point1, 'x')) True print(hasattr(point1, 'y')) True print(hasattr(point1, 'z')) True print(hasattr(point1, 'no')) # 没有该属性 Falseclass Coordinate: x = 10 y = -5 z = 0 point1 = Coordinate() print(hasattr(point1, 'x'))Trueprint(hasattr(point1, 'y'))Trueprint(hasattr(point1, 'z'))Trueprint(hasattr(point1, 'no')) # 没有该属性False
31、hash()
**描述:**返回对象的哈希值
**语法:**hash(object)
**参数:**object – 对象;
案例:
hash() 函数可以应用于数字、字符串和对象,不能直接应用于 list、set、dictionary。 在 hash() 对对象使用时,所得的结果不仅和对象的内容有关,还和对象的 id(),也就是内存地址有关。 class Test: def __init__(self, i): self.i = i for i in range(10): t = Test(1) print(hash(t), id(t)) hash(point1) 16294976 hash('返回对象的哈希值') 4919828709165481160 hash() 函数的用途 hash() 函数的对象字符不管有多长,返回的 hash 值都是固定长度的,也用于校验程序在传输过程中 是否被第三方(木马)修改,如果程序(字符)在传输过程中被修改hash值即发生变化,如果没有被 修改,则 hash 值和原始的 hash 值吻合,只要验证 hash 值是否匹配即可验证程序是否带木马(病毒)。 name1='正常程序代码' name2='正常程序代码带病毒' print(hash(name1)) # -3048480827538126659 print(hash(name2)) # -9065726187242961328
32、help()
**描述:**返回对象的帮助文档
**语法:**help([object])
**参数:**object – 对象
案例:
help('sys') # 查看 sys 模块的帮助 help('str') # 查看 str 数据类型的帮助 a = [1,2,3] help(a) # 查看列表 list 帮助信息 help(a.append) # 显示list的append方法的帮助
33 、id()
**描述:**id() 函数返回对象的唯一标识符,标识符是一个整数。CPython 中 id() 函数用于获取对象的内存地址。
**语法:**id([object])
**参数:**object – 对象。
案例:
返回对象的内存地址 a = 'runoob' id(a) 260316720
34、input()
**描述:**Python3.x 中 input() 函数接受一个标准输入数据,返回为 string 类型。获取用户输入内容
**语法:**input([prompt])
**参数:**prompt: 提示信息
案例:
a = input("input:") input:1234 print(a) 123
35、int()
**描述:**int() 函数用于将一个字符串或数字转换为整型。 x可能为字符串或数值,将x 转换为一个普通整数。如果参数是字符串,那么它可能包含符号和小数点。如果超出了普通整数的表示范围,一个长整数被返回。
**语法:**int(x, base =10)
参数:
- x – 字符串或数字。
- base – 进制数,默认十进制。
案例:
int('12',16) 18 int('12',10) 12
36、isinstance()
**描述:**isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。
isinstance() 与 type() 区别:
type() 不会认为子类是一种父类类型,不考虑继承关系。
isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。
**语法:**isinstance(object, classinfo)
参数:
object – 实例对象。
classinfo – 可以是直接或间接类名、基本类型或者由它们组成的元组。
案例:
a = 2 isinstance (a,int) True isinstance (a,str) False isinstance (a,(str,int,list))#是元组中的一个返回 True True
37、issubclass()
**描述:**issubclass() 方法用于判断参数 class 是否是类型参数 classinfo 的子类。如果class是classinfo类的子类,返回True:
**语法:**issubclass(class, classinfo)
参数:
- class – 类。
- classinfo – 类。
案例:
class A: pass class B(A): pass print(issubclass(B,A)) # 返回 True
38、iter()
**描述:**iter() 函数用来生成迭代器。
**语法:**iter(object[, sentinel])
参数:
- object – 支持迭代的集合对象。
- sentinel – 如果传递了第二个参数,则参数 object 必须是一个可调用的对象(如,函数),此时,iter 创建了一个迭代器对象,每次调用这个迭代器对象的__next__()方法时,都会调用 object。返回一个可迭代对象, sentinel可省略,sentinel 理解为迭代对象的哨兵,一旦迭代到此元素,立即终止:
案例:
lst = [1,3,5] iter(lst) <list_iterator at 0xf8359e8> for i in iter(lst): print(i) 1 3 5
39、len()
**描述:**len() 函数返回对象(字符、列表、元组等)长度或项目个数。
**语法:**len(s)
**参数:**s – 对象。
案例:
#字典的长度 dic = {'a':1,'b':3} len(dic) 2 #字符串长度 s='aasdf' len(s) 5 #列表元素个数 l = [1,2,3,4,5] len(l)
40、list()
**描述:**list() 函数创建列表或者用于将元组转换为列表。
**语法:**list( tup )
**参数:**tup – 要转换为列表的元组。
案例:
atuple = (123, 'xyz', 'zara', 'abc') aList = list(atuple) aList [123, 'xyz', 'zara', 'abc']
41、map()
**描述:**map() 会根据提供的函数对指定序列做映射。返回一个将 function 应用于 iterable 中每一项并输出其结果的迭代器
**语法:**map(function, iterable, …)
参数:
- function – 函数
- iterable – 一个或多个序列
案例:
def square(x) : # 计算平方数 return x ** 2 list(map(square, [1,2,3,4,5])) # 计算列表各个元素的平方 [1, 4, 9, 16, 25] list(map(lambda x: x ** 2, [1, 2, 3, 4, 5])) # 使用 lambda 匿名函数 [1, 4, 9, 16, 25] # 提供了两个列表,对相同位置的列表数据进行相加 list(map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])) [3, 7, 11, 15, 19] list(map(lambda x: x%2==1, [1,3,2,4,1])) [True, True, False, False, True
42、max()
**描述:**max() 方法返回给定参数的最大值,参数可以为序列。
**语法:**max( x, y, z, … )
参数:
- x – 数值表达式。
- y – 数值表达式。
- z – 数值表达式。
案例:
最大值: max(3,1,4,2,1) 4 di {'a':3,'b1':1,'c':4} max(di) 'c'
43、min()
**描述:**min() 方法返回给定参数的最小值,参数可以为序列。
**语法:**min( x, y, z, … )
参数:
- x – 数值表达式。
- y – 数值表达式。
- z – 数值表达式。
案例:
min(80, 100, 1000) 80 min([80, 100, 1000]) 80
【超全面】Python内置函数详解(三):https://developer.aliyun.com/article/1540494?spm=a2c6h.13148508.setting.27.36474f0evjrly2