python3.7中内置函数共有69个,breakpoint()为python3.7中新增功能,其实很多我们都用过,又有很多不常用.下面来大概了解一下吧
1 print(abs(-1)) #传入一个参数,返回该参数的绝对值 2 print(all([0,2,3])) #传入一个可迭代对象,全部参数都为真,才返回True 3 print(any([1,2,0])) #传入一个可迭代对象,只要有一个元素为真,则返回True 4 print(ascii("你好啊")) #传入一个字符串,返回该字符串的repr形式(带引号的),如果字符不在ASCII码中则用uxU转义 5 print(bin(10)) #传入一个十进制数字,返回该数字的二进制字符串0b开头
结果对照:
1 1 2 False 3 True 4 'u4f60u597du554a' 5 0b1010
1 print(oct(456)) #传入一个十进制数字,返回该数字的八进制字符串0o开头 2 print(int("0b101001",2)) #将一个字符串转换成十进制数,第一个参数是字符串,第二个参数是字符串的进制数 3 print(hex(20)) #传入一个十进制数,返回该数字的十六进制字符串0x开头 4 print(bool("")) #将传入的数据转换成布尔值,除None以及空类型数据,都是True
结果对照:
1 0o710 2 41 3 0x14 4 False
1 print(bytearray("你好啊",encoding="utf-8")) 2 print(bytearray(8)) 3 ''' 4 如果它是一个字符串,您还必须提供编码(和可选的,错误)参数; bytearray()然后使用将字符串转换为字节str.encode()。 5 如果它是一个整数,则该数组将具有该大小,并将使用空字节进行初始化。 6 如果它是符合缓冲区接口的对象,则将使用该对象的只读缓冲区来初始化bytes数组。 7 如果它是可迭代的,则它必须是范围内的可迭代整数 ,它们用作数组的初始内容。0 <= x < 256 8 如果没有参数,则会创建一个大小为0的数组。 9 '''
结果对照:(举例两个)
1 bytearray(b'xe4xbdxa0xe5xa5xbdxe5x95x8a') 2 bytearray(b'x00x00x00x00x00x00x00x00')
1 print(bytes("哈哈",encoding="utf-8")) #将字符串转换成字节模式 2 f= lambda x:x**2 3 print(callable(f)) #输入一个对象,查看该对象是否可被调用.如果返回True也可能调用失败,False则绝不会成功 4 print(chr(256)) #输入一个整数,返回该数字对应unicode的字符串,与ord相反 5 print(ord("Ā")) #输入一个字符串,返回该字符串对应的unicode整数码位,与chr相反 6 class C: 7 @classmethod #将方法转换为类方法, 8 def f(cls, arg1, arg2): #可以不需要实例化,直接类名.方法名()来调用。 9 pass
结果对照:
1 b'xe5x93x88xe5x93x88' 2 True 3 Ā 4 256
1 def func(): 2 pass 3 print(dir(func)) #如果没有参数,则返回当前本地范围中的名称列表。使用参数,尝试返回该对象的有效属性列表。
结果对照:
1 ['__annotations__', '__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__get__', '__getattribute__', '__globals__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__kwdefaults__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
1 class A(): 2 name = "皮卡丘" 3 def skill(self): 4 pass 5 setattr(A,"age","21") #参数是一个对象,一个字符串和一个任意值。该字符串可以命名现有属性或新属性。 6 print(A.age) 7 8 print(getattr(A(),"name")) #获取对象name属性的值,如果不存在,则按默认值添加 9 10 11 print(hasattr(A(),"name")) #参数是一个对象和一个字符串。如果字符串是对象属性之一,返回True否则False 12 13 # print(delattr(A,"name")) #参数是一个对象和一个字符串。该字符串必须是对象属性之一的名称。 14 # print(A.name)
结果对照:
1 21 2 皮卡丘 3 True 4 AttributeError: type object 'A' has no attribute 'name'
1 lst = [1,2,3,4] 2 print(list(enumerate(lst, start=2))) #枚举,输入一个可迭代对象,加上个计数,(默认0),返回一个__next__方法加计数的元组 3 print(divmod(5, 3)) #输入两个数,返回两数的商和余数 4 print(eval("1+5")) #输入一段字符串,计算字符串中的结果 5 def func(): 6 return 35 7 print(exec(""" 8 def func(): 9 l = 4**3 10 return l 11 print(func()) 12 """)) #这个函数支持Python代码的动态执行。对象必须是字符串或代码对象。
结果对照:
1 [(2, 1), (3, 2), (4, 3), (5, 4)] 2 (1, 2) 3 6 4 64 5 None
1 lst = [1,2,3,4] 2 print(list(filter(lambda x:x>2,lst))) #通过一个自定义函数,来筛选数据,前面函数,后面可迭代对象 3 print(float("123")) #输入一个数字字符串或者数字,转换成一个浮点数 4 5 print(format(1235,">20")) #右对齐,输入一个变量,通过指定的格式化方式,输出 6 print(format("你好啊","<20")) #左对齐, 7 print(format("你好啊","^20")) #居中,
结果对照:
1 [3, 4] 2 123.0 3 1235 4 你好啊 5 你好啊
1 from functools import reduce 2 lst = [1,2,3,4] 3 print(reduce(lambda x,y:x*y,lst)) #对一个可迭代对象进行累(加或者乘)计算 4 print(isinstance(8,int)) #用来查看对象是否是一个已知类型 5 class A(): 6 pass 7 class B(): 8 pass 9 print(issubclass(A,B)) #判断一个类是否是另一个类的派生类
结果对照:
1 24 2 True 3 False
1 print(iter([1,2,3,4])) #生成一个迭代器 2 print(list("abcd")) #将一个可迭代对象,转换成列表形式 3 print(len("qwer")) #返回可迭代对象的中元素的个数,长度 4 print(list(map(lambda x:x**x,[1,2,3,4]))) #按函数规则,将可迭代对象中每个元素做映射,并生成一个迭代器对象, 5 print(memoryview(bytes("你好啊",encoding="utf-8"))) #返回由给定参数创建的“内存视图”对象。 6 print(max(["哈哈","嘻嘻"])) #返回迭代对象或者多个元素中的最大值 7 print(min([1,2,3])) #返回迭代对象或者多个元素中的最小值
结果对照:
<list_iterator object at 0x00000242BC109A58> ['a', 'b', 'c', 'd'] 4 [1, 4, 27, 256] <memory at 0x00000242BC12C348> 嘻嘻 1