day4-内置函数

详细文档地址:猛击这里

内置函数详解

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(sourcefilenamemodeflags=0dont_inherit=Falseoptimize=-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(expressionglobals=Nonelocals=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*[, keydefault])

返回给定参数的最大值,参数可以为序列。

>>> 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(startstop[, 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(startstop[, 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
原文地址:https://www.cnblogs.com/Easonlou/p/8351301.html