Python基础之内置函数(五)

2018-08-21  本文已影响0人  ProMonkey_LAIN
一、介绍

Python解释器运行时会自动加载builtins模块,而我们常用的内置函数都是在此模块中;

- 通过globals()查看当前自带模块
>>> globals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>}
- 通过dir()查看builtins模块内置的函数,通过len()计算有153个内置属性,其中大约80多内置函数,60多个内置异常,还有几个内置常数,特殊名称以及模块相关的属性;
len(dir(__builtins__))
abs() dict() help() min() setattr()
all() dir() hex() next() slice()
any() divmod() id() object() sorted()
ascii() enumerate() input() oct() staticmethod()
bin() eval() int() open() str()
bool() exec() isinstance() ord() sum()
bytearray() filter() issubclass() pow() super()
bytes() float() iter() print() tuple()
callable() format() len() property() type()
chr() frozenset() list() range() vars()
classmethod() getattr() locals() repr() zip()
compile() globals() map() reversed() _import_()
complex() hasattr() max() round()
delattr() hash() memoryview() set()
  1. abs()绝对值函数
>>> abs(-100)
100
  1. dict() 创建字典
>>> dict(abc='123')
{'abc': '123'}
>>> dict()
{}
  1. help()帮助函数,查看函数或者模块的使用方法
>>> help()
help> keywords
  1. min()函数,返回最小值
>>> min(1, 2, 3)
1
  1. setattr()函数,跟类有关,后续补充
  2. all()函数,判断元组或列表内元素是否为True,如果有一个不为True那么结果为False
>>> a = [1, 2, 3]
>>> all(a)
True
>>> b = [0, 1, 2]
>>> all(b)
False
  1. dir()函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表
dir()
['A', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'a', 'b']
>>> dir(a)
['__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']
  1. hex()函数,将十进制转换为十六进制
>>> hex(10)
'0xa'
  1. next()函数,返回迭代器中下一个元素值
>>> number = '178582258'
>>> it = iter(number)
>>> next(it)
'1'
>>> next(it)
'7'
  1. slice(), 返回切片类型的对象
>>> myslice = slice(5)
>>> myslice
slice(None, 5, None)
>>> arr = range(10)
>>> arr[myslice]
range(0, 5)
  1. any(),与all()相反,判断元组或列表内元素是否为False,如果有一个不为False那么结果为True
>>> any([0, 0, 0])
False
>>> any([0, 1, 2])
True
  1. divmod(),计算两个值相除,返回商和余数
>>> divmod(3, 1)
(3, 0)
>>> divmod(3, 2)
(1, 1)
  1. id(),获取对象的内存地址
>>> id(3)
1876484912
  1. object(),该方法不接收任何参数,返回一个没有任何功能的对象。object是Python所有类的基类。
  2. sorted(),排序函数
>>> sorted([88, 2, 44, 51, 2231, 5, 111, 41])
[2, 5, 41, 44, 51, 88, 111, 2231]
>>> sorted((88, 2, 44, 51, 2231, 5, 111, 41))
[2, 5, 41, 44, 51, 88, 111, 2231]
  1. ascii(),打印函数,类似于print()方法
>>> ascii('abc')
"'abc'"
>>> ascii(2)
'2'
  1. enumerate(), 枚举函数,可用for循环打印出列表元素以及对应的下标
>>> a = ['lain', 'tom', 'lili', 'sunne']
>>> for i in enumerate(a):
     print(i)
(0, 'lain')
(1, 'tom')
(2, 'lili')
(3, 'sunne')
  1. input(),输入函数
>>> input('姓名: ')
姓名: LAIN
'LAIN'
  1. oct(),讲十进制转成八进制
>>> oct(222)
'0o336'
  1. staticmethod(),跟类有关,后续补充
  2. bin(),讲十进制转成二进制
>>> bin(333)
'0b101001101'
>>> bin(2)
'0b10'
  1. eval(),执行字符串表达式,并返回结果
>>> eval(('7 + 1'))
8
  1. int(),将字符串或者数字转换成整型,可指定进制数
>>> int('22', 8)
18
>>> int('22', 16)
34
>>> int('22', 10)
22
  1. open(),文件操作,打开或者创建文件等;
  2. str(), 更改类型为字符串
>>> type(str({'name1':'lain', 'name2':'lilei', 'name3':'tom'}))
<class 'str'>
>>> type({'name1':'lain', 'name2':'lilei', 'name3':'tom'})
<class 'dict'>
  1. bool(),返回布尔值
>>> bool()
False
>>> bool(2)
True
  1. exec(),执行储存在字符串或文件中的 Python 语句,相比于 eval,exec可以执行更复杂的 Python 代码
>>> exec('print("hello world")')
hello world
  1. isinstance(),判断对象是否属于某个数据类型
>>> isinstance('1', int)
False
>>> isinstance(1, int)
True
  1. ord(),返回ascii码表上的数字
>>> ord('A')
65
>>> ord('a')
97
  1. sum(),求和
>>> sum([1, 2, 3])
6
>>> sum((2, 3, 4))
9
  1. bytearray(),返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256
如果 source 为整数,则返回一个长度为 source 的初始化数组;
如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;
如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;
如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。
如果没有输入任何参数,默认就是初始化数组为0个元素。
>>> bytearray([1, 2, 3])
bytearray(b'\x01\x02\x03')
>>> bytearray('jianshu.com', 'utf-8')
bytearray(b'jianshu.com')
  1. filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中
def is_odd(n):
    return n % 2 == 1
tmplist = filter(is_odd, [1, 2, 3, 4, 5])
newlist = list(tmplist)
print(tmplist)
print(newlist)
执行结果:
<filter object at 0x021195F0>
[1, 3, 5]
  1. issubclass(),类相关函数后续补充
  2. pow(),幂函数
>>> pow(2, 2)
4
>>> pow(2, 3)
8
  1. super(),类相关函数后续补充
  2. bytes(),将对象类型转换为字节
>>> bytes(2)
b'\x00\x00'
>>> bytes('i', encoding='utf-8')
b'i'
  1. float(),将对象类型转换为浮点数
>>> float(100)
100.0
>>> float(-12)
-12.0
  1. iter(),生成迭代器,使其具备next()功能
>>> a = [1, 2, 3]
>>> b = iter(a)
>>> next(b)
1
>>> next(b)
2
>>> next(b)
3
  1. print(),打印函数
>>> print('Hello World')
Hello World
  1. tuple(),将对象转换成元组类型
>>> tuple()
()
>>> tuple('lain')
('l', 'a', 'i', 'n')
>>> tuple(['lain', 'baidu', 'FB', 'alibaba'])
('lain', 'baidu', 'FB', 'alibaba')
  1. callable(),判断对象是否可以被调用
>>> callable(0)
False
>>> callable('lain')
False
>>> def add(a):
    print(a)
>>> callable(add)
True
  1. format(),字符串格式化
>>> print('my name is {0}'.format('lain'))
my name is lain
  1. len(),计算长度或者元素个数
    
>>> len('jianshu.com')
11
>>> len(['lain', 'baidu', 'FB', 'alibaba'])
4
  1. property(),类相关函数后续补充
  2. type(),查看对象数据类型
    
>>> type(3)
<class 'int'>
>>> type(['lain', 23, 'shenzhen'])
<class 'list'>
  1. chr(),与ord相反,给出ascii码表中对应得数字,返回字符
>>> ord('a')
97
>>> chr(97)
'a'
  1. frozenset(),创建冰冻集合此集合不可增删改
>>> frozenset([2, 3, 4, 6])
frozenset({2, 3, 4, 6})
  1. list(),将对象转换成列表
>>> list('hello world')
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
  1. range(),返回可迭代对象
>>> range(10)
range(0, 10)
  1. vars(),返回字典
>>> x = 1
>>> scope = vars()
>>> scope["x"]
1
  1. classmethod(),类相关函数后续补充
  2. getattr(),类相关函数后续补充
  3. locals(),返回当前作用域下局部变量
locals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'a': 1, 'b': 2, 'add': <function add at 0x02E6DA50>, 'x': 1, 'scope': {...}}
  1. repr(),类似print打印
>>> repr(a)
'1'
  1. zip(),用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存
>>> a = [1, 2, 3, 4, 5]
>>> b = ['a', 'b', 'c', 'd', 'e']
>>> list(zip(a, b))
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e')]
  1. compile(),将一个字符串编译为字节代码
>>> a = '3 + 6'
>>> eval(compile(a, '', 'eval'))     
9
  1. globals(),会以字典类型返回当前位置的全部全局变量
>>> globals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'a': '3 + 6', 'b': ['a', 'b', 'c', 'd', 'e'], 'add': <function add at 0x02E6DA50>, 'x': 1, 'scope': {...}}
  1. map(),会根据提供的函数对指定序列做映射,第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表
calc = lambda x, y: x * y
data = map(calc, [1, 2, 3, 4, 5], [6, 7, 8, 9, 10])  #将第一个列表和第二个列表分别当做参数x,y
for i in data:
    print(i,end=' ')

运行结果:
6 14 24 36 50
  1. reversed(),返回一个反转的迭代器
<class 'reversed'>
>>> reversed([1, 2, 4])
<list_reverseiterator object at 0x02E4EAD0>
>>> a = reversed([1, 2, 3, 5])   #list结果是一个反转的列表迭代器
>>> list(a)
[5, 3, 2, 1]
>>> list(a)  #第二次list就是空
[]
>>> type(a)
<class 'list_reverseiterator'>
  1. import(),动态加载类或者函数以及模块
>>> __import__('time')  #类似于import time
<module 'time' (built-in)>
>>> import time
  1. complex(),用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数
>>> complex(1, 2)
(1+2j)
>>> complex('1')
(1+0j)
>>> complex('1+2j') 
(1+2j)
  1. hasattr(),类相关函数后续补充
  2. max(),返回最大值
>>> max([1, 2, 3, 4])
4
>>> max(1, 2, 3, 5)
5
  1. round(),四舍五入,可以指定小数位数
>>> round(3.4)
3
>>> round(4.6)
5
>>> round(3.1415926, 3)
3.142
>>> round(3.1415926, 2)
3.14
  1. delattr(),类相关函数后续补充
  2. hash(),返回对象的哈希值
>>> hash('jianshu.com')
1705446308
>>> hash(15278569)
15278569
  1. memoryview(),返回obj的内存视图对象;obj只能是bytes或bytesarray类型
>>> a = memoryview(b'jianshu.com')
>>> a[:]
<memory at 0x02E3E6B0>
  1. set(),将对象转换为集合
>>> a = set([1, 2, 3, 4, 5])
>>> type(a) 
<class 'set'>
>>> type(set())
<class 'set'>
>>> type(set('hello world'))
<class 'set'>
上一篇 下一篇

猜你喜欢

热点阅读