内置函数
Python解释器有许多内置的函数和类型,可以被直接调用的
如图下:
abs()
# 返回参数的绝对值
num = abs(-3)
print(num)
# 输出: 3
all()
# 判断是否都为True,则返回True,如果有一个为False,则为False
>>> a = [-1,3,4,5]
>>> bool(a)
True
>>> all(a)
True
>>> a.append(0)
>>> bool(a)
True
>>> a
[-1, 3, 4, 5, 0] # 0 为 False
>>> all(a) # 有一个为False,则返回False
False
>>> bool([])
False
>>> all([])
True
any()
# 如果有一个是True,则为True,全为False,则返回False
>>> a
[-1, 3, 4, 5, 0]
>>> any(a)
True
>>> any([False])
False
ascli()
# 返回 ascli 编码
>>> a = 'abc天天'
>>> ascii(a)
"'abc\\u5929\\u5929'"
bin()
# 返回二进制
>>> bin(10)
'0b1010'
bool()
# 判断布尔值
>>> bool(1)
True
>>> bool(0)
False
>>> bool([])
False
bytearrany()
# 修改字符串值,原内存地址修改而不是重新赋值
>>> a2 = bytearray(a, encoding='utf-8')
>>> a
'abc路飞'
>>> a2
bytearray(b'abc\xe8\xb7\xaf\xe9\xa3\x9e')
>>> a2[0]
97
>>> a2[0] = 98
>>> a2
bytearray(b'bbc\xe8\xb7\xaf\xe9\xa3\x9e')
>>>
bytes()
# bytes 类型
>>> bytes('路飞', encoding='utf-8')
b'\xe8\xb7\xaf\xe9\xa3\x9e'
callable()
# 判断是否可调用
>>> def f():
... pass
...
>>> callable(f) # 可以判断是否为函数
True
>>> a
(1, 2, 3)
>>> callable(a)
False
chr()
# 和 ord 相反,通过 ascli码表返回对应的字符串
>>> chr(97)
'a'
>>> chr(49)
'1'
compile()
# 编译代码
complex()
# 转换成负数
dir()
# 打印当前程序的所有变量
>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'a']
>>> c = 2
>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'a', 'c']
divmod()
# 返回整除和余数
>>> divmod(10,3) # 10//3 和 10 % 3
(3, 1) # 3 为整除,1为余数
enumerate()
# 枚举,可以返回列表的索引
>>> a = [1,2,3]
>>> for index,i in enumerate(a):
... print(index, i )
...
0 1
1 2
2 3
eval()
# 按解释器规则将字符串转成代码 eval 只能处理单行代码,可以拿到返回值
>>> eval('print("hello world")')
hello world
>>> a = '1+2'
>>> print(eval(a))
3
>>> print(exec(a))
Non
exec()
# 同 eval相同,但是 exec 可处理多行代码,但不能拿到返回值
>>> code = '''
... if 3 > 5:
... print('abc')
... else:
... print(123)
... '''
>>> exec(code)
123
>>> a = '1+2'
>>> print(eval(a))
3
>>> print(exec(a))
Non
filter()
# 返回符合的值,是True则返回
>>> filter(lambda x: x > 2 , [1,2,3,4])
<filter object at 0x7fb9232a2a58>
>>> list(filter(lambda x: x > 2 , [1,2,3,4]))
[3, 4]
float()
# 浮点类型
frozenset()
# 转换成不可变的集合
globals()
# 打印全局变量
hash()
# 返回不可变的字符的 hash 值
>>> a = (1,2,3)
>>> hash(a)
2528502973977326415
>>> hash('b')
3928152851069447604
help()
# 帮助命令
hex()
# 将数值转成 16 进制
>>> hex(12)
'0xc'
id()
# 返回内存值
>>> id(3)
9330976
>>> id('a')
140433265525848
input()
# 输入,返回的类型为字符串,可以交互式输入字符串
>>> input('abc')
abc
len()
# 返回查询的长度
>>> a = [1,2,3,4,5]
>>> len(a)
5
list()
# 转换成列表
>>> a = list(range(10))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
locals()
# 打印函数的局部变量,一般在函数内执行
map()
# 可以配合 lambda 进行列表自乘
>>> map(lambda x: x*x , [1,2,3,4])
<map object at 0x7fb9232a2a90>
>>> list(map(lambda x: x*x , [1,2,3,4]))
[1, 4, 9, 16]
max()
# 返回最大值
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> max(a)
9
min()
# 返回最小值
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> min(a)
0
oct()
# 返回 8 进制
>>> oct(8)
'0o10'
open()
# 打开文件并指定读写,字符编码
>>> open('test.txt', mode='r', encoding='utf-8')
# 第一个为文件名,在同一目录下可以直接写文件名,不是就需要写绝对路径
# mode 指定读写
# enconding 指定字符编码
ord()
# 返回字符串在 ascli 码表值
>>> ord('a')
97
>>> ord('1')
49
pow()
# 返回多少次方
>>> pow(2,3)
8
print()
# 输出字符到屏幕
>>> print('abc')
abc
>>> print('abc','123')
abc 123
>>> print('abc','123', sep='-')
abc-123
>>> print('abc','123', sep='-',end='')
abc-123>>>
range()
# 返回指定的数值
>>> a = range(10)
>>> a
range(0, 10)
repr()
# 显示形式变成字符串
reversed()
# 跟 sorted 相反
round()
# 保留多少为小数
set()
# 转换成集合
slice()
# 提前定义好切片规则
>>> a = list(range(10))
>>> s = slice(1,7,2)
>>> a[s]
[1, 3, 5]
sorted()
# 排序
>>> sorted(d.items(), key=lambda x:x[1])
[(1, -49), (2, -48), (3, -47), (4, -46), (5, -45), (6, -44), (7, -43), (8, -42), (9, -41), (0, 100)]
# 根据 values 值从小到大排序
str()
# 转换成字符串类型
>>> a = [1,2,3,4]
>>> str(a)
'[1, 2, 3, 4]'
sum()
# 求和
>>> a = [2,3,4,-1,3]
>>> sum(a)
11
tuple()
# 转换成元祖
type()
# 返回字符类型
>>> a = []
>>> type(a)
<class 'list'>
>>> type(1)
<class 'int'>
>>> type('b')
<class 'str'>
vars()
# 当前程序所有的变量
zip()
# 将两个列表进行一一对应,没有的值就丢弃
>>> a = [1,2,3,4,5]
>>> b = ['a', 'b', 'c', 'd']
>>> list(zip(a,b))
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]