内置函数 | |||
---|---|---|---|
abs() | divmod() | input() | open() |
all() | enumerate() | int() | ord() |
any() | eval() | isinstance() | pow() |
basestring() | execfile() | issubclass() | print() |
bin() | file() | iter() | property() |
bool() | filter() | len() | range() |
bytearray() | float() | list() | raw_input() |
callable() | format() | locals() | reduce() |
chr() | frozenset() | long() | reload() |
classmethod() | getattr() | map() | repr() |
cmp() | globals() | max() | reversed() |
compile() | hasattr() | memoryview() | round() |
complex() | hash() | min() | set() |
delattr() | help() | next() | setattr() |
dict() | hex() | object() | slice() |
dir() | id() | oct() | sorted() |
内置函数简单练习
#1.abs() 绝对值或复数的模
abs(-1) >>> 1
#2.all() 接受一个迭代器,如果迭代器的所有元素都为真,那么返回True,否则返回False
all([1,2,3]) >>> True
#3.any() 接受一个迭代器,如果迭代器里有一个元素为真,那么返回True,否则返回False
any([0,0]) >>> False
#4.ascii() 调用对象的__repr__()方法,获得该方法的返回值
ascii('ab') >>> "'ab'"
#5.bin() 将十进制转换为二进制
bin(10) >>> '0b1010'
#6.bool() 测试一个对象是True还是False
bool([]) >>> False
#7.bytearray() 字节数组 字节是计算机的语言,字符串是人类语言,它们之间通过编码表形成一一对应的关系
a = 'python'
>>> bytearray(a,'utf8')
bytearray(b'python')
>>> list(bytearray(a,'utf8'))
[112, 121, 116, 104, 111, 110]
>>> b'python'[0]
112
#8.bytes() 将一个字符串转换成字节类型
st = 'python'
a = bytes(st,encoding='utf-8')
>>> a
b'python'
#9.callable() 判断对象是否可以被调用,能被调用的对象就是一个callables对象,比如函数
callable(str) >>> True
#10.chr() 查看十进制数对应的ASCII字符
chr(10) >>> '\n'
#11.classmethod() 用来指定一个方法为类的方法,由类直接调用执行,只有一个cls参数,执行类的方法时,自动将调用该方法的类赋值给cls.没有此参数指定的类的方法为实例方法
#12.compile() 将字符串编译成python能识别或可以执行的代码,也可以将文字读成字符串再编译
compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)
'''
将source编译为代码或者AST对象。代码对象能过通过exec语句来执行或者eval()进行求值。
参数source:字符串或者AST(abstract syntax trees)对象。
参数filename:代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。
参数model:指定编译代码的种类。可以指定'exec', 'eval', 'single'。
参数flag和dont_inherit:这两个参数为可选参数
'''
st = 'python'
r = compile(st,'' ,'exec')
>>> r at 0x000001841735E810, file "" , line 1>
#13.complex() 创建一个值为real + imag * j的复数或者转化一个字符串或数为复数。如果第一个参数是字符串,则不需要指定第二个参数
complex(1,2) >>> (1+2j)
complex('12') >>> (12+0j)
#14.copyright() 版权
#15.credits() 支持
#16.delattr() 删除对象的属性
#17.dict() 创建数据字典
dict(a=1) >>> {'a': 1}
#18.dir() 不带参数时返回当前范围内的变量,方法和定义的类型列表,带参数时返回参数的属性,方法列表
#19.divmod() 分别取商和余数
divmod(5,2) >>> (2, 1)
#20.enumerate() 返回一个可以枚举的对象,该对象的next()方法将返回一个元组
li = ['a','b','c']
>>> enumerate(li)
0x0000018417402558>
>>> list(enumerate(li))
[(0, 'a'), (1, 'b'), (2, 'c')]
#21.eval() 1.将字符串str当成有效的表达式来求值并返回计算结果2.取出字符串中内容
>>> eval("{'a':1}")
{'a': 1}
>>> eval('1 + 2 + 3')
6
#22.exec() 执行字符串或complie方法编译过的字符串,没有返回值
>>> st = '''
z = 4
a = x + y + z
print(a)
'''
>>> exec(st,{'x':0,'y':0},{'y':10,'z':10})
14
>>> st = '''
a = x + y + z
print(a)
'''
>>> exec(st,{'x':0,'y':0},{'y':10,'z':10})
20
#23.exit() 退出
#24.filter() 过滤器,构造一个序列,等价于[ item for item in iterables if function(item)],在函数中设定过滤条件,逐一循环迭代器中的元素,将返回值为True时的元素留下,形成一个filter类型数据
'''
filter(function or None, iterable) --> filter object
参数function:返回值为True或False的函数,可以为None
参数iterable:序列或可迭代对象
'''
>>> filter(lambda x:x+1,[1,2])
0x00000184173EAD30>
>>> list(filter(lambda x:x+1,[1,2]))
[1, 2]
>>> filter(lambda x:x>10,[9,12])
0x00000184173EAC88>
>>> list(filter(lambda x:x>10,[9,12]))
[12]
#25.float() 讲一个字符串或整数转换为浮点数
>>> float(11)
11.0
#26.format() 格式化输出字符串,format(value, format_spec)实质上是调用了value的__format__(format_spec)方法
>>> format(12)
'12'
>>> format(12,'5d')
' 12'
#27.frozenset() 创建一个不可修改的集合
'''
frozenset([iterable])
set和frozenset最本质的区别是前者是可变的,后者是不可变的。当集合对象会被改变时(例如删除,添加元素),只能使用set,
一般来说使用fronzet的地方都可以使用set
'''
>>> frozenset([1,2,3])
frozenset({1, 2, 3})
#28.getattr() 获取对象的属性
'''
getattr(object, name[, default]) -> value
获取对象object名为name的特性,如果object不包含名为name的特性,将会抛出AttributeError异常;如果不包含名为name的特性
且提供default参数,将返回default。
参数object:对象
参数name:对象的特性名
参数default:缺省返回值
'''
#29.globals() 返回一个描述当前全局变量的字典
>>> st = 'python'
>>> globals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': 'builtins' (built-in)>, 'a': b'python', 'li': ['a', 'b', 'c'], 'i': 'zip', 'st': 'python', 'r': at 0x000001841735E810, file "" , line 1>}
#30.hasattr() hasattr(object,name)判断对象object是否包含名为name的特性(hasattr是通过调用getattr(object,name))是否抛出异常来实现的
>>> hasattr(list,'pop')
True
#31.hash() 哈希值hash(object)注意:可哈希的即不可变数据类型,不可哈希即可变数据类型
'''
如果对象object为哈希表类型,返回对象object的哈希值。哈希值为整数,在字典查找中,哈希值用于快递比价字典的键。
两个数值如果相等,则哈希值也相等
'''
>>> hash('ab')
2766084925433962145
>>> hash(12)
12
#32.help() 返回对象的帮助文档
'''
调用内建的帮助系统,如果不包含参数,交互式帮助系统将在控制台启动。如果参数为字串,则可以是模块,类,方法等名称,并且帮助页面将会在控制台打印。参数也可以 为任意对象
'''
#33.hex() 将十进制转换为十六进制
hex(16) >>> '0x10'
#34.id() 返回对象的内存地址
>>> id(1)
1726850144
#35.input() 获取用户输入内容
>>> input('请输入:')
请输入:abc
'abc'
#36.int() 将一个字符串或数值转换为一个普通整数
'''
int(x=0) -> integer
int(x, base=10) -> integer
如果参数是字符串,那么它可能包含符号和小数点。参数base表示转换的基数(默认是10进制)。
它可以是[2,36]范围内的值,或者0。如果是0,系统将根据字符串内容来解析。
如果提供了参数base,但参数x并不是一个字符串,将抛出TypeError异常;
否则,参数x必须是数值(普通整数,长整数,浮点数)。通过舍去小数点来转换浮点数。
如果超出了普通整数的表示范围,一个长整数被返回。
如果没有提供参数,函数返回0
'''
>>> int('12')
12
#37.isinstance() 检查对象是否是类的对象,返回True或False
>>> isinstance('a',str)
True
#38.issubclass() 检查一个类是否是另一个类的子类。返回True或False issubclass(sub, super)
>>> issubclass(str,object)
True
#39.iter() 返回一个iterator对象
'''
iter(iterable) -> iterator
iter(callable, sentinel) -> iterator
'''
>>> a = iter([1,2,3])
>>> next(a)
1
>>> a = iter([1,2,3,4,5])
>>> b = iter(a.__next__,3)
>>> next(b)
1
>>> next(b)
2
>>> next(b)
Traceback (most recent call last):
File "" , line 1, in
next(b)
StopIteration
#40.len() 返回对象长度,参数可以是序列类型(字符串,元组或列表)或映射类型(如字典)
>>> len([1,2,3])
3
#41.license() 软件的历史
#42.list() 列表构造函数
>>> list('abc')
['a', 'b', 'c']
#43.locals() 打印当前可用的局部变量的字典
>>> locals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': 'builtins' (built-in)>, 'a': 0x00000185CCC2C4E0>, 'b': 0x00000185CCCC8860>}
#44.map() 对于参数iterable中的每个元素都应用fuction函数,并将结果作为列表返回
'''
如果有多个iterable参数,那么fuction函数必须接收多个参数,这些iterable中相同索引处的元素将并行的作为function函数的参数。
如果一个iterable中元素的个数比其他少,那么将用None来扩展改iterable使元素个数一致。
如果有多个iterable且function为None,map()将返回由元组组成的列表,每个元组包含所有iterable中对应索引处值。
'''
>>> li = [1,2,3]
>>> a = map(str,li)
>>> a
如何获取:
>>> li = dir(__builtins__)
>>> li = li[li.index('abs'):]
>>> for i in range(len(li)):
print('#%s.%s()'%(i+1,li[i]))