内置函数

一、常见内置函数

https://docs.python.org/3/library/functions.html

二、计算类

1、abs(x)

取绝对值

>>> abs(-10)
10

2、all(iterable)  

如果这个可迭代的元素都为真,则返回真(非0的就为真,负数也是为真)

>>> all([2,3,1,0])
False
>>> all([2,3,1])
True
>>> all([2,3,-1])
True

3、any(iterable)

可迭代的元素中,有一个为真,则返回真,空列表返回假。 

>>> any([])
False
>>> any([0])
False
>>> any([2,4])
True

4、bool([x])

功能:返回一个布尔值,空列表为假,不为空为真

>>> bool([])
False
>>> bool([6,7])
True

5、divmod(a,b)

功能:地板除,获得一个元组,元组第一个元素是商,第二个元素是余数。

>>> divmod(4,3)
(1, 1)
>>> divmod(5,3)
(1, 2)
#1是商,2是余数

6、map(functioniterable)

功能:对传入的每一个值进行处理,处理完了再返回,再把原来的结果覆盖掉。

>>> b=map(lambda n:n*2,range(5))
>>> b
<map object at 0x1033c9a58>
>>> for i in b:
...     print(i)
... 
0
2
4
6
8

 7、reduce(function,iterable)

功能:把一组可迭代序列通过function函数操作,元素之间相加或者相乘操作。 

>>> from functools import reduce
>>> res=reduce(lambda x,y:x+y,range(10))
>>> res
45

8、len(s)

功能:计算序列或者字符串的长度

>>> len('bianbain')
8
>>> len(list((1,2,3,5,3,)))
5

9、max(iterable*[, keydefault])

功能:返回列表重点额最大值

>>> max([1,2,4,54,23])
54

10、min(iterable*[, keydefault])

功能:返回列表中的最小值

>>> min([1,2,4,54,23])
1

  

  

三、数据类型转换类

1、ascii(object)

把内存对象变成一个可打印的字符串格式

>>> ascii([1,2,34,4])
'[1, 2, 34, 4]'

2、bin(x)

把一个整数转换成二进制

>>> bin(80)
'0b1010000'

3、bytes([source[, encoding[, errors]]])

把字符串转换成字节

>>> a = bytes("mnop",encoding="utf-8")
>>> a
b'mnop'
>>> a[0]
109
>>> a[0]=w
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'w' is not defined

 注:(1)可以访问到字符对应的ASCII值

         (2)bytes声明的字符串不可以修改里面的值

   4、bytearray[source[, encoding[, errors]]]

功能:字节数组,并且可以修改二进制的字节

>>> b = bytearray("abcd",encoding="utf-8")
>>> b
bytearray(b'abcd')
>>> b[1]
98
>>> b[1]=100
>>> b[1]
100

 5、dict(**kwarg)、dict(mapping**kwarg)、dict(iterable**kwarg)

功能:返回一个字典

>>> dict()
{}
>>> dict(name='bianbian',age=18,love='pengpeng')
{'name': 'bianbian', 'age': 18, 'love': 'pengpeng'}
>>> dict([('name','bianbian'),('age',18),('love','pengpeng')])
{'name': 'bianbian', 'age': 18, 'love': 'pengpeng'}
>>> dict([['name','bianbian'],['age',18],['love','pengpeng']])
{'name': 'bianbian', 'age': 18, 'love': 'pengpeng'}

6、exec(object[, globals[, locals]])

功能:有语句的和复杂的语句的字符串转换成表达式???

 

code = '''def timmer(func): #timmer(test) func=test
    def fex(*args,**kwargs):#传入非固定参数
        res=func(*args,**kwargs) #传入非固定参数
        return res
    return fex

#不带参数
@timmer
def test1(): # 相当于test1 = timmer(test1)
    print("in the test1")
    return "from the test1"  # 执行函数test1有返回值
res = test1()
print(res)
'''
exec(code)

#结果
in the test1
from the test1

7、filter(functioniterable)

功能:通过function过滤条件,去获取iterable中你想要的数据。

>>> a = filter(lambda n:n>5,range(10))
>>> a
<filter object at 0x1033f4320>
>>> for i in a:
...     print(i)
... 
6
7
8
9

 8、float([x])

功能:把一个浮点类型的字符串转换为浮点类型的数据。

>>> float('0.372')
0.372
>>> float('+0.372')
0.372
>>> float(' -319')
-319.0
>>> float('+1E6')
1000000.0

 9、frozenset([iterable])

功能:把集合变成一个不可变的集合

>>> res=frozenset([1,2,3,4,5,1])
>>> res
frozenset({1, 2, 3, 4, 5}) #去重的,不可变的集合
>>> dir(res) #没有可变的方法
['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'copy', 'difference', 'intersection', 'isdisjoint', 'issubset', 'issuperset', 'symmetric_difference', 'union']

10、hex(x)

功能:把一个数字转成16进制

>>> hex(2728)
'0xaa8'

11、int(x)

功能:把其他数据类型强制转换成int类型

>>> int(a)
180
>>> int(10.4)
10

12、iter(object[, sentinel])

功能:把一个普通序列转成迭代器

13、list([iterable])

功能:把其他序列转换成一个列表

>>> list((1,2,3,5,3,))
[1, 2, 3, 5, 3]

14、oct(x)

功能:把一个数转成8进制

>>> oct(10)
'0o12'
>>> oct(100)
'0o144'

15、round(number[, ndigits])

功能:保留float数据类型位数

>>> round(1.43499,3)
1.435

16、str(object)

功能:把其他数据类型转换为字符串

>>> str(1)
'1'

17、

tuple([iterable])

功能:把其他序列转换为一个元组

>>> tuple([1,43,5,6])
(1, 43, 5, 6)

  

  

  

 

  

四、判断类

1、callable(object)

功能:判断一个对象是否可以被调用,只有在后面有括号的,表示可以调用,比如:函数,类。

>>> callable([])
False
>>> def test():pass
... 
>>> callable(test)
True

2、chr(i)

功能:通过ascii的值,找到对应的字符

>>> b = bytearray("abcd",encoding="utf-8")
>>> b
bytearray(b'abcd')
>>> b[1]=100
>>> b[1]
100
>>> chr(100)
'd'

3、ord(c)

功能:根据字符,找到对应的ascii值

>>> b = bytearray("abcd",encoding="utf-8")
>>> b
bytearray(b'abcd')
>>> b[1]=100
>>> ord('d')
100

4、dir([object])

功能:看一个对象有哪些方法

>>> name=[]
>>> dir(name)
['__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']

5、enumerate(iterable,start=0)

功能:遍历一个可迭代对象,获取索引和对应的元素的值

>>> a=['a','b','c','d']
>>> list(enumerate(a))
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]
>>> list(enumerate(a,start=2))
[(2, 'a'), (3, 'b'), (4, 'c'), (5, 'd')]

6、globals()

功能:返回当前这个python文件中的所有变量的key-value,变量是key,值是value

可以判断一个文件中的变量是否存在,而globals()只能打印全局变量 

>>> print(globals())
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'a': <filter object at 0x1033f4320>, 'i': 8, 'b': <map object at 0x1033c9a58>, 'reduce': <built-in function reduce>, 'res': frozenset({1, 2, 3, 4, 5})}

 7、hash(object)

功能:反射出一个对象的对应的hash值。

>>> hash('bianbian')
2624987259895593164
>>> hash('18')
-5605491781378490538
>>> hash('a')
7709350130933621133

 

看上图,试想一张表中5百万个用户信息,只能用for循环去查找,那样的话,效率会很低。

可以把每一个姓名对应的值,然后通过对应的key值去定位,key值是放在一个列表中,当我们去查找某个key值时,可以折半查找,这样大大减少了查找时间,提高效率,这种也叫二分法查找。

 五、其他

1、help([object])

功能:显示对象的帮助信息

2、id(object)

功能:返回对象的内存地址

>>> a=180
>>> id(a)
4425784016

3、input([prompt])

功能:输入字符串

4、isinstance(objectclassinfo)

功能:这个在迭代器中使用

5、locals()

功能:打印局部变量

def test():
    local_var=19302
    print(locals())
test()
print(globals().get("locals_var"))
#结果 
{'local_var': 19302}
None

6、next(iterator[, default])

功能:返回迭代器的下一个值,相当于__next__()方法,如果迭代最后一个数据之后没有值了,则会抛出一个StopIteration异常

>>> a=iter([1,2])
>>> next(a)
1
>>> next(a)
2
>>> next(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration

7、object

功能:python中一切皆对象,每一个对象都有它的属性和方法

 8、open(filemode='r'buffering=-1encoding=Noneerrors=Nonenewline=Noneclosefd=Trueopener=None)

功能:文件操作

9、print(*objectssep=' 'end=' 'file=sys.stdoutflush=False)

功能:打印

10、range(stop)、range(startstop[, step])

功能:生成一个迭代器

>>> range(5)
range(0, 5)
>>> range(1,5)
range(1, 5)
>>> range(1,5,3)
range(1, 5, 3)

10、reversed(seq)

功能:反转一个序列,跟列表中的reversed方法是一样的

>>> reversed([1,3,5,6])
<list_reverseiterator object at 0x10807e3c8>
>>> for i in reversed([1,3,5,6]):
...     print(i)
... 
6
5
3
1

11、slice(stop),slice(startstop[, step])

功能:序列的切片

>>> a=[1,4,5,56,7,3]

>>> a[slice(1,3)]
[4, 5]
>>> a[1:3]
[4, 5] 

12、sorted(iterable[, key][, reverse])

功能:对一个序列进行排序

>>> sorted([5,7,3,64,132,34,1])
[1, 3, 5, 7, 34, 64, 132]
>>> a={1:2,4:5,6:7}
>>> sorted(a) #默认是按key排序
[1, 4, 6]
>>> b={'a':2,'b':5,'c':7} 
>>> sorted(b) #按key排序
['a', 'b', 'c']
>>> sorted(b.items())
[('a', 2), ('b', 5), ('c', 7)]
>>> sorted(b.items(),key = lambda x:x[1]) #按value排序
[('a', 2), ('b', 5), ('c', 7)]

  

 

13、type(object) 、type(namebasesdict)

功能:查看一个对象的数据类型

14、vars([object])

功能:返回对象的所有属性

15、zip(*iterables)

功能:zip中文意思是拉链的意思,把两个序列一一对应起来

如果a的元素比b的多,则按照元素最少的那个来

>>> a=[1,3,4,5]
>>> b=['a','b','c','d']
>>> for i in zip(a,b):
...     print(i)
... 
(1, 'a')
(3, 'b')
(4, 'c')
(5, 'd')

 16、

__import__(nameglobals=Nonelocals=Nonefromlist=()level=0)

功能:当导入的模块是一个字符串时,用__import__()

>>> import os
>>> __import__('os') 
<module 'os' from '/Users/bianbian/anaconda3/lib/python3.7/os.py'>

  

 
原文地址:https://www.cnblogs.com/bianfengjie/p/10846508.html