内置函数
all: 所有iterable类型,包含的元素要全为真才返回真
>>> all([0,-1,5]) False >>> all([-1,5]) True
any:有iterable类型,非空且包含任一为真element就返回true
>>> any([]) False >>> any([0]) False >>> any([0,12]) True
ascii:
>>> a = ascii([1,2,"中文"]) >>> print(type(a),[a]) <class 'str'> ["[1, 2, '\u4e2d\u6587']"] >>> #把内存的数据转换为可打印的字符串格式
bin:
>>> bin(2) #把十进制转换为二进制 '0b10' >>> #convert an integer number to a binary string ,需要整数才能转
#二进制转十进制 >>> int('0b10',2) #如果前面有标识进制数,后面不用加 base 2 >>> int('10',base=2) 2 >>> int('0x10',16) 16 >>> int('0o657',8) 431 >>> int('657',base=8) 431 >>> bin(431) '0b110101111' >>> oct(431) '0o657' >>> hex(431) '0x1af' >>>
bool:判断真假
>>> bool([]) False >>> bool(0) False >>> bool([0,1]) True
bytes:转换为二进制格式
>>> a = bytes("abcde",encoding='utf-8') >>> print(a.capitalize(),a) b'Abcde' b'abcde' >>> a[0] 97 >>> a[0] = 100 #当想修改它时会报错 Traceback (most recent call last): File "<pyshell#4>", line 1, in <module> a[0] = 100 TypeError: 'bytes' object does not support item assignment >>>
bytearray:
>>> b = bytearray("abcde",encoding='utf-8') >>> b[0] 97 >>> b[0] = 102 >>> print(b) bytearray(b'fbcde') >>> #bytearray变成变成二进制列表的形式,并可以修改,很少用到
callable:
>>> print(callable([])) False >>> #判断是否可以调用,后面能加括号的就是能调用的,比如函数 >>> def sayhi(): pass >>> callable(sayhi()) #此时为函数运行结果,不能调用 False >>> callable(sayhi) #注意此时函数为内存地址,可以调用 True
chr:
>>> chr(87) #把Unicode中的数字对应的元素返回出来 'W'
ord:
>> ord('a') #把元素返回为Unicode中对应的数字号码 97
compile:#compile(str,'err.log','exec or eval') 把字符串编译为可运行的代码
>>> code = 'for i in range(2):print(i)' >>> compile(code,'','exec') <code object <module> at 0x000001C8899C89C0, file "", line 1> >>> exec(code) #相当于import了这个模块,然后执行 >>>> 0 1 2
dict:
>>>dict() # 创建空字典 {}
>>> dict(a='a', b='b', t='t') # 传入关键字 {'a': 'a', 'b': 'b', 't': 't'}
>>> dict(zip(['one', 'two', 'three'], [1, 2, 3])) # 映射函数方式来构造字典 {'three': 3, 'two': 2, 'one': 1}
>>> dict([('one', 1), ('two', 2), ('three', 3)]) # 可迭代对象方式来构造字典 {'three': 3, 'two': 2, 'one': 1} >>>
delattr :
很重要,先跳过
dir:
>>> a = {} >>> dir(a) #查可用方法 ['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values'] >>>
divmod:
divmod(5,2) # 5除以2 并返回商和余数 (2, 1)
lambda: 匿名函数
>>> x = lambda n:3 if n<3 else n >>> x(7) #>>> x(2) 输出为 3 7
>>>aaa = lambda x,y:x+y
>>>print(aaa(1,2)) #定义了几个参数就传几个参数和函数一样
3
format:
实例 >>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序 'hello world' >>> "{0} {1}".format("hello", "world") # 设置指定位置 'hello world' >>> "{1} {0} {1}".format("hello", "world") # 设置指定位置 'world hello world' 也可以设置参数: 实例 #!/usr/bin/python # -*- coding: UTF-8 -*- print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com")) # 通过字典设置参数 site = {"name": "菜鸟教程", "url": "www.runoob.com"} print("网站名:{name}, 地址 {url}".format(**site)) # 通过列表索引设置参数 my_list = ['菜鸟教程', 'www.runoob.com'] print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的
filter:过滤
>>> res = filter(lambda n:n>5,range(10)) #filter(function,iterable),参数1为条件,参数2为可迭代类型 >>> for i in res: print(i) 6 7 8 9 >>> #在range(10)中过滤出大于5的元素
map: map(function,iterable),按照function的功能,对iterable进行操作
>>> res2 = map(lambda n:n*n,range(3)) >>> for i in res2: print(i) 0 1 4 >>> #map(function,iterable),按照function的功能,对iterable进行操作 >>> #是个迭代器,要用for循环输出 >>> #和列表生成式一样,区别是map是迭代器
reduce : 在python3中不是内置函数,需要import functools调用
>>> import functools >>> res3 = functools.reduce(lambda x,y:x+y,range(10)) >>> print(res3) 45 >>> #x为返回值,y为第一个数,执行x+y后,x变为x+y,y变为下一个数,从而得到从1加到10的值 >>> #在python2.7中 reduce为内置函数,现在要用functools导入调用
float: 将数字或者字符串,返回为浮点数
>>> float(3) 3.0 >>> float('3.4') 3.4
globals(): 只打印全局变量 locals():打印局部变量
>>> a = [1] >>> globals() {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'a': [1]} >>> globals().get('a') [1] >>> #golbals 变量名是key,变量值是value,返回当前程序所有的变量
frozenset():
>>> set1 = frozenset([1,4,4,3]) >>> 不可变集合,用这个定义集合后,set1 SyntaxError: invalid character in identifier >>> #不可变集合,用这个定义集合后,set1就不可变,pop,clear方法都没了
hash():
>>> hash('gkx') #返回对象的哈希值 -3746276222014687951 >>> #可以应用于数字、字符串和对象,不能直接应用于 list、set、dictionary。
help(),hex(),int(),isinstance(),len(),list(),iter()
>>> help(a.append) #返回帮助信息 Help on built-in function append: append(...) method of builtins.list instance L.append(object) -> None -- append object to end >>> hex(66) '0x42' >>> #转十六机制 bin()#转二进制 oct() #转八进制 >>> id(a) 1960805134216 >>> #返回内存地址 >>> int(3.4) 3 >>> int('3') #返回整数,注意'3.4'字符串如果时小数,返回会报错 3 >>> iter([]) #变为iterator <list_iterator object at 0x000001C889A4C908> >>> a = 'abc' >>> len(a) #查询变量长度 3 >>> a = list() >>> #定义一个列表
max() min() : #1,比较的元素是可迭代对象,用for循环原理,如果第一个元素分出大小,后面就不会继续比较了。2.根据ASCII码值的大小比较
>>> max([2,3,45]) #求最大值 45 >>> min([2,3,45]) #求最小值 2
next():
>>> next(iter([1,2,3])) 1 >>> #返回迭代器的下一个元素
pow():
>>> pow(3,3) 27 >>> #返回3的3次方
repr():
>>> a = [1,2,3] >>> repr(a) '[1, 2, 3]' >>> #类似ascii,转为str
round():
>>> round(1.33333,2) 1.33 >>> #保留小数位,根据参数2. 默认是保留整数位
slice(起始位置,终止位置,间距): list的切片方法 【:】一模一样
>>> d = 'abcde' >>> c = [1,2,3,4,5] >>> d[slice(1,2)] 'b' >>> d[slice(4)] 'abcd' >>> #切片 >>> d = range(10) >>> d[slice(2,5)] range(2, 5) >>> #slice(起始位置,结束位置,间距) >>> d[2:5] range(2, 5) >>>
sorted():
>>> a = {1:2,3:6,7:11,-1:6} >>> sorted(a.items()) #默认用key排序 [(-1, 6), (1, 2), (3, 6), (7, 11)] >>> sorted(a.items(),key=lambda x:x[1]) #用value排序,用到匿名函数 [(1, 2), (3, 6), (-1, 6), (7, 11)] >>>
sum():求和
>>> sum([1,2,3,4])
10
tuple(): 定义一个元组
>>> a = tuple() >>> a ()
zip():
>>> cc = ['gkx','lion','cat'] >>> dd = [1,2,3] >>> for i in zip(cc,dd): #因为是一个迭代器,所以要用循环 print(i) ('gkx', 1) ('lion', 2) ('cat', 3) >>> >>> dd = [1,2,3,4,5] >>> for i in zip(cc,dd): print(i) ('gkx', 1) ('lion', 2) ('cat', 3) >>> #按最小的拼接
>>>dict() # 创建空字典 {} >>> dict(a='a', b='b', t='t') # 传入关键字 {'a': 'a', 'b': 'b', 't': 't'} >>> dict(zip(['one', 'two', 'three'], [1, 2, 3])) # 映射函数方式来构造字典 {'three': 3, 'two': 2, 'one': 1} >>> dict([('one', 1), ('two', 2), ('three', 3)]) # 可迭代对象方式来构造字典 {'three': 3, 'two': 2, 'one': 1} >>>
__import__():
import sys __import__('a') # 导入 a.py 模块