详细文档地址:猛击这里
内置函数详解
1. abs(x)
返回数字的绝对值。x -- 数值表达式,可以是整数,浮点数,复数
>>> print(abs(-1)) 1 >>> print(abs(100.10)) 100.1
2. all(Iterable)
用于判断给定的可迭代参数Iterable中的所有元素是否不为0,‘’,或者iterable为空,如果是返回True, 否则返回False.
注意:空元组、空列表返回值为True,这里要特别注意。
>>> all(["a","b","c"]) True >>> all(["a","b","c",""]) False >>> all(["a","b","c","0"]) True >>> all([0,1,2,3]) False >>> all([]) True >>> all(()) True
3. any(iterable)
用于判断给定的可迭代参数iterable是否全部为空对象,如果都为空,0,false, 则返回False, 如果不为空,0,false,则返回True.
>>> any(["a","b"]) True >>> any(["a","b",""]) True >>> any([0,"",False]) False >>> any([]) False >>> any(()) False
4. ascii(object)
把内存对象变成一个可打印的字符串格式
>>> ascii(['1']) "['1']" >>> ascii('obj') "'obj'"
5. bin(x)
把一个整数转换成二进制
>>> bin(10) '0b1010' >>> bin(1) '0b1' >>> bin(100) '0b1100100'
6. bool()
用于将给定的参数转换为布尔型,如果没有参数,返回False
>>> bool() False >>> bool(0) False >>> bool(1) True
7. bytearray([source[, encoding[, errors]]])
字节数组,并且可以修改二进制的字节
>>> b = bytearray("abcd",encoding="utf-8") #声明一个字节数组 >>> b bytearray(b'abcd') >>> b[0] #打印第一个元素的ascii值,也就是‘a’对应的ascii值 97 >>> b[0] = 100 #修改时,只能赋值对应字符的ascii值 >>> b bytearray(b'dbcd') #发现字节数组值被修改
8. bytes([source[, encoding[, errors]]])
把字符串转换成字节
>>> b = bytes("abcd",encoding="utf-8") >>> b b'abcd'
9. callable(object)
判断一个对象是否可以被调用,只有在后面有括号的,表示可以被调用,比如:函数,类
>>> callable([]) #列表后不加括号 False >>> def sayhi():pass #定义一个函数 ... >>> callable(sayhi) #函数调用,后面需要加括号 True
10. chr(i)
通过ascii的值,找到对应的字符
>>> chr(97) 'a' >>> chr(91) '['
11. ord(c)
根据字符,找到对应的ascii值
>>> ord("a") 97 >>> ord("[") 91
12. classmethod(function)
类方法,这个后续谈到类的时候再说。
13. compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)
用于把代码编译的一个过程,这个基本用不到
>>> code = """1+3/2*6""" >>> py_object = compile(code,'','eval') >>> eval(py_object) 10.0
14. complex([real[, imag]])
返回一个复数,我们几乎用不到
>>> complex("1+2j") (1+2j)
15. delattr(object, name)
类使用的,先不care
16. dict(**kwarg)、dict(mapping, **kwarg)、dict(iterable, **kwarg)
返回一个字典
>>> dict() {} >>> dict(name="alex",age=18) {'name': 'alex', 'age': 18} >>> dict([["name","alex"],["age",18]]) {'name': 'alex', 'age': 18} >>> dict([("name","alex"),("age",18)]) {'name': 'alex', 'age': 18}
17. dir([object])
函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。
>>> dir() ['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'b', 'code', 'py_object', 'sayhi'] >>> dir([]) ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
18. divmod(a,b)
divmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)
>>> divmod(7,2) (3, 1) >>> divmod(8,2) (4, 0)
19. enumerate(iterable,start=0)
遍历一个可迭代的对象,获取索引和对应的元素
>>> L = ['a','b','c'] >>> enumerate(L) <enumerate object at 0x056C5670> >>> list(enumerate(L)) [(0, 'a'), (1, 'b'), (2, 'c')]
20. eval(expression, globals=None, locals=None)
把字典类型的字符串变成字典,把一个整数类型的字符变成int类型,或者加减乘除这种简单转换成表达式。
>>> eval("1") 1 >>> eval("1+3/2*6") 10.0
21. exec(object[, globals[, locals]])
有语句和复杂语句的字符串转换成表达式
>>> code = """ ... def test(): ... print("in the test") ... res = test() ... print(res) ... """ >>> exec(code) in the test None
22. filter(function,iterable)
通过function过滤条件,去获取iterable中你想要的数据。
>>> res = filter(lambda n:n>5,range(10)) >>> res <filter object at 0x056E4630> >>> for i in res: ... print(i) ... 6 7 8 9
23. map(function,iterable)
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表
>>> res = map(lambda n:n+1,range(5)) >>> res <map object at 0x056E4770> >>> for i in res: ... print(i) ... 1 2 3 4 5
24. reduce(function,iterable)
把一组可迭代序列通过function函数操作,元素之间相加或相乘操作。
>>> from functools import reduce >>> res = reduce(lambda x,y:x+y,range(10)) >>> res 45 >>> res = reduce(lambda x,y:x*y,range(1,10)) >>> res 362880
25. float()
用于将整数和字符串转换成浮点数。
>>> float(1) 1.0 >>> float(112) 112.0 >>> float(-112.6) -112.6 >>> float("123") 123.0
26. format(value[,format_spec])
格式化字符串,详细使用点击这里
27. frozenset([iterable])
返回一个冻结的集合,冻结后集合不能再添加或删除任何元素
>>>a = frozenset(range(10)) # 生成一个新的不可变集合 >>> a frozenset([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> b = frozenset('runoob') >>> b frozenset(['b', 'r', 'u', 'o', 'n']) # 创建不可变集合 >>>
28. getattr(object, name[,default])
用于返回一个对象属性值。后续类的时候详细说明。
29. globals()
返回当前这个python文件中的所有变量的key-value,变量是key,值是value
>>> globals() {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'b': frozenset({'u', 'n', 'o', 'r', 'b'}), 'sayhi': <function sayhi at 0x056C2738>, 'code': ' def test(): print("in the test") res = test() print(res) ', 'py_object': <code object <module> at 0x056E72E0, file "", line 1>, 'L': ['a', 'b', 'c'], 'test': <function test at 0x056C26F0>, 'res': 362880, 'i': 5, 'reduce': <built-in function reduce>, 'a': frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})}
注:可以判断一个文件中的变量是否存在,而globals()只能打印全局变量
30. hash(object)
反射出一个对象的对应的hash值
>>> hash("alex") -1269379972 >>> hash(192) 192 >>> hash("a") 369426383
31. hex(x)
把一个数字转成16进制
>>> hex(255) '0xff' >>> hex(11) '0xb'
32. id(object)
返回对象的内存地址
>>> a = ["a","b","c"] >>> id(a) 14577456
33. int(x)
其他数据类型强制转换成int类型
>>> int("10") 10
34. issubclass(class, classinfo)
用于判断参数 class 是否是类型参数 classinfo 的子类
class A: pass class B(A): pass print(issubclass(B,A)) # 返回 True
35. iter(object[, sentinel])
用来生成迭代器。
>>>lst = [1, 2, 3] >>> for i in iter(lst): ... print(i) ... 1 2 3
36. locals()
locals() 函数会以字典类型返回当前位置的全部局部变量
>>>def runoob(arg): # 两个局部变量:arg、z ... z = 1 ... print (locals()) ... >>> runoob(4) {'z': 1, 'arg': 4} # 返回一个名字/值对的字典 >>>
37. max(iterable, *[, key, default])
返回给定参数的最大值,参数可以为序列。
>>> max([1,2,3]) 3
38. next(iterator[, default])
返回迭代器的下一个值,相当于__next__()方法,如果迭代最后一个数据之后没有值了,则会抛出一个StopIteration异常
# 首先获得Iterator对象: it = iter([1, 2, 3, 4, 5]) # 循环: while True: try: # 获得下一个值: x = next(it) print(x) except StopIteration: # 遇到StopIteration就退出循环 break
39. object
python中一切皆对象,每一个对象都有它的属性和方法
40. range(stop)、range(start, stop[, step])
生成一个迭代器
>>> range(5) range(0, 5) >>> range(10) range(0, 10)
41. repr()
repr() 函数将对象转化为供解释器读取的形式。
>>>s = 'RUNOOB' >>> repr(s) "'RUNOOB'" >>> dict = {'runoob': 'runoob.com', 'google': 'google.com'}; >>> repr(dict) "{'google': 'google.com', 'runoob': 'runoob.com'}"
42. reversed(seq)
reversed 函数返回一个反转的迭代器。
- seq -- 要转换的序列,可以是 tuple, string, list 或 range。
# 字符串 seqString = 'Runoob' print(list(reversed(seqString))) # 元组 seqTuple = ('R', 'u', 'n', 'o', 'o', 'b') print(list(reversed(seqTuple))) # range seqRange = range(5, 9) print(list(reversed(seqRange))) # 列表 seqList = [1, 2, 4, 3, 5] print(list(reversed(seqList)))
43. round(number[, ndigits])
保留float数据类型位数
>>> round(1.223254,2) 1.22
44. slice(stop),slice(start, stop[, step])
序列的切片
>>> a = [1,2,3,4,5,6] >>> a[slice(1,3)] [2, 3] >>> a[1:3] [2, 3]
45. sorted(iterable[, key][, reverse])
sorted() 函数对所有可迭代的对象进行排序操作
sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
46. sum()
对系列进行求和计算
>>>sum([0,1,2]) 3 >>> sum((2, 3, 4), 1) # 元组计算总和后再加 1 10 >>> sum([0,1,2,3,4], 2) # 列表计算总和后再加 2 12
47. super([type[, object-or-type]])
这个是类的继承,后续会讲
48. vars([object])
返回对象object的属性和属性值的字典对象,如果没有参数,就打印当前调用位置的属性和属性值 类似 locals()
>>>print(vars()) {'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '__doc__': None, '__package__': None} >>> class Runoob: ... a = 1 ... >>> print(vars(Runoob)) {'a': 1, '__module__': '__main__', '__doc__': None} >>> runoob = Runoob() >>> print(vars(runoob)) {}
49. zip()
zip中文意思是拉链的意思,把两个序列一一对应起来。
>>>a = [1,2,3] >>> b = [4,5,6] >>> c = [4,5,6,7,8] >>> zipped = zip(a,b) # 打包为元组的列表 [(1, 4), (2, 5), (3, 6)] >>> zip(a,c) # 元素个数与最短的列表一致 [(1, 4), (2, 5), (3, 6)] >>> zip(*zipped) # 与 zip 相反,可理解为解压,返回二维矩阵式 [(1, 2, 3), (4, 5, 6)]
50. __import__(name[, globals[, locals[, fromlist[, level]]]])
用于动态加载类和函数。如果一个模块经常变化就可以使用 __import__() 来动态载入
a.py 文件代码:
import os print ('在 a.py 文件中 %s' % id(os))
test.py文件代码:
import sys __import__('a') # 导入 a.py 模块
执行 test.py 文件,输出结果为:
在 a.py 文件中 4394716136