详细文档地址:猛击这里
内置函数详解
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': '\ndef test():\n print("in the test")\nres = test()\nprint(res)\n', '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