整理一下python的内置函数吧,顺序按照菜鸟教程中的顺序来吧,整理顺带学习。
参考:https://docs.python.org/zh-cn/3.6/library/functions.html
文章目录
- 1. abs()
- 2. all()
- 3. any()
- 4. ascii()
- 5. bin()
- 6. bool()
- 7. bytearray()
- 8. bytes()
- 9. callable()
- 10. chr()
- 11. classmethod()
- 12. compile()
- 13. complex()
- 14. delattr()
- 15. dict()
- 16. dir()
- 17. divmod()
- 18. enumerate()
- 19. eval()
- 20. exec()
- 21. filter()
- 22. float()
- 23. format()
- 24. frozenset()
- 25. getattr()
- 26. globals()
- 27. hasattr()
1. abs()
描述: 返回一个数的绝对值。实参可以是整数或浮点数。如果实参是一个复数,返回它的模。
语法: abs(x)
参数: x 可以是整数,浮点数,复数
返回值: abs(x)返回x的绝对值, 若参数是一个复数,则返回它的模
实例:
# abs
print('abs(-3) = ', abs(-3)) # 3
print('abs(2.5) = ', abs(2.5)) # 2.5
# complex(x, y) 复数类型,x为实部, y为虚部
print('abs(complex(1, 2)) = ', abs(complex(1,2))) # 2.23606797749979
2. all()
描述: 如果 iterable 的所有元素为真(或迭代器为空),返回 True 。等价于:
def all(iterable):
for element in iterable:
if not element:
return False
return True
语法: all(iterable)
参数: iterable为一个迭代器(元组或列表)
返回值: 如果iterable的所有元素不为0、空、False或者iterable为空,all(iterable)返回True,否则返回False;
注:若迭代器为空,则返回True
实例:
# all
# 列表元素不为 空 或 0
print(all(['a', 'b', 'c'])) # True
# 列表元素有 空值
print(all(['a', '', 'c'])) # False
# 列表元素有 0值
print(all([0, 2, 3])) # False
# 列表为 空
print(all([])) # True
# tuple类型同理
3. any()
描述: 如果 iterable 的任一元素为真则返回 True。 如果迭代器为空,返回 False。 等价于:
def any(iterable):
for element in iterable:
if element:
return True
return False
语法: any(iterable)
参数: iterable为一个迭代器(元组或列表)
返回值: 如果都为0、空、False,则返回False,如果不都为空、0、False,则返回True
实例:
# any()
# 列表都不为 空 或 0
print(any(['a', 'b', 'c'])) # True
# 列表有一个元素为 空
print(any(['a', '', 'c'])) # True
# 列表全为 0 或 空 或 False
print(any([0, '', False])) # False
# 列表为空
print(any([])) # False
# tuple类型同理
4. ascii()
描述: 类似于函数 repr()
,返回一个对象可打印的字符串,但是 repr()
返回的字符串中非 ASCII 编码的字符,会使用 \x、\u 和 \U 来转义。生成的字符串和 Python 2 的 repr()
返回的结果相似。
语法: ascii(object)
参数: object 是一个对象
返回值: 返回字符串
实例:
# ascii()
ascii('test') # 'test'
5. bin()
描述: 返回一个整型int
或者长整型 long int
的以0b为前缀的二进制串
语法: bin(x)
参数: x为整型或长整型
返回值: 字符串
实例:
# bin()
print(bin(15)) # 0b1111
print(bin(-10)) # -0b1010
# 如果不需要前缀 0b ,还可以使用如下的方法
print(format(15, '#b')) # 0b1111
print(format(15, 'b')) # 1111
print(f'{15:#b}') # 0b1111
print(f'{15:b}') # 1111
6. bool()
描述: 返回一个布尔值,True 或者 False。 x 使用标准的真值测试过程来转换。如果 x 是假的或者被省略,返回 False;其他情况返回 True。bool 类是 int 的子类。其他类不能继承自它。它只有 False 和 True 两个实例
语法: bool(x)
参数: x为要转换的参数
返回值: 返回bool值, True 或 False
实例:
# bool()
print(bool(0)) # False
print(bool(1)) # True
print(bool()) # False
7. bytearray()
描述: 返回一个新的 bytes 数组。 bytearray 类是一个可变序列,包含范围为 0 <= x < 256 的整数。它有可变序列大部分常见的方法
语法: bytearray([source[, encoding[, errors]]])
参数:
可选形参 source 可以用不同的方式来初始化数组:
- 如果是一个 string,您必须提供 encoding 参数(errors 参数仍是可选的);bytearray() 会使用 str.encode() 方法来将 string 转变成 bytes。
- 如果是一个 integer,会初始化大小为该数字的数组,并使用 null 字节填充。
- 如果是一个符合 buffer 接口的对象,该对象的只读 buffer 会用来初始化字节数组。
- 如果是一个 iterable 可迭代对象,它的元素的范围必须是 0 <= x < 256 的整数,它会被用作数组的初始内容。
如果没有实参,则创建大小为 0 的数组。
返回值: 返回字节数组
实例:
# bytearray()
print(bytearray([])) # bytearray(b'')
print(bytearray([1,2,3])) # bytearray(b'\x01\x02\x03')
print(bytearray('test', 'utf-8')) # bytearray(b'test')
8. bytes()
描述: 返回一个新的“bytes”对象, 是一个不可变序列,包含范围为 0 <= x < 256 的整数。bytes 是 bytearray 的不可变版本,它有其中不改变序列的方法和相同的索引、切片操作
语法: bytes([source[, encoding[, errors]]])
参数: 同bytearray()
返回值: 返回一个新的 bytes 对象
实例:
# bytes()
print(bytes([1,2,3])) # b'\x01\x02\x03'
print(bytes('hello','ascii')) # b'hello'
9. callable()
描述: 用于检查一个对象是否可以被调用,若返回True,仍然有可能调用失败;若返回False,绝对不可被调用(这个函数在python3.0时候被移除了,但是python3.2又加回来了)
语法: callable(object)
参数: object为一个对象
返回值: 返回True
或者Flase
表示可否被调用
实例:
# callable()
# 0 或字符串不可被调用
print(callable(0)) # False
print(callable('test')) # False
# 这里定义一个函数,是可以被调用的
def test_fun():
pass
print(callable(test_fun)) # True
# 这里定义一个类,也是可以被调用的
class test_class():
def __init__(self):
pass
print(callable(test_class)) # True
10. chr()
描述: 输入一个数字,根据 ASCII 码表,返回数字对应的字符。是ord()
的反函数
语法: chr(i)
参数: i – 可以是 10 进制也可以是 16 进制的形式的数字,数字范围为 0 到 1,114,111 (16 进制为0x10FFFF)
返回值: 整数对应的ASCII码字符
实例:
# chr()
print(chr(97)) # a
# 这里也可以是十六进制数
print(chr(0x30)) # 0
11. classmethod()
描述:
语法:
参数:
返回值:
实例:
12. compile()
描述:
语法:
参数:
返回值:
实例:
13. complex()
描述: 返回值为 real + imag*1j 的复数,或将字符串或数字转换为复数。如果第一个形参是字符串,则它被解释为一个复数,并且函数调用时必须没有第二个形参。第二个形参不能是字符串。每个实参都可以是任意的数值类型(包括复数)。如果省略了 imag,则默认值为零,构造函数会像 int 和 float 一样进行数值转换。如果两个实参都省略,则返回 0j
语法: complex([real[, imag]])
参数:
- real – int, long, float或字符串;
- imag – int, long, float;
返回值: 返回一个复数
实例:
# complex()
# 1 为实部,2为虚部
print(complex(1,2)) # (1+2j)
# 1 为实部, 虚部为 0
print(complex(1)) # (1+0j)
# 字符串定义 1 为实部,虚部为 0
print(complex('1')) # (1+0j)
# 字符串定义
# 注意:这里的'1+2j'加号左右两侧不可加空格,如:'1 + 2j',这里是错误的
print(complex('1+2j')) # (1+2j)
14. delattr()
描述: 用于删除对象属性
语法: delattr(x, 'foobar')
等价于 del x.foobar
。
参数: 实参是一个对象和一个字符串,该字符串必须是这个对象的一个属性
返回值: 无返回值
实例:
# delattr()
# 定义一个类,包含3个属性 a b c
class test_class():
a = 1
b = 2
c = 3
A = test_class()
print(A.a, A.b, A.c) # 1 2 3
delattr(test_class, 'c')
print(A.a) # 1
print(A.b) # 2
print(A.c) # error 无属性 c
15. dict()
描述: 用于创建一个字典
语法:
class dict(**kwarg)
class dict(mapping, **kwarg)
class dict(iterable, **kwarg)
参数:
- **kwargs – 关键字
- mapping – 元素的容器。
- iterable – 可迭代对象。
返回值: 返回一个字典
实例:
# dict()
# 创建一个空字典
print(dict()) # {}
# 关键字构建字典
print(dict(a=1, b=2, c=3)) # {'a': 1, 'b': 2, 'c': 3}
# 映射函数构建字典
print(dict(zip(['a', 'b', 'c'], [1,2,3]))) # {'a': 1, 'b': 2, 'c': 3}
# 迭代对象创建字典
print(dict([('a', 1), ('b', 2), ('c', 3)])) # {'a': 1, 'b': 2, 'c': 3}
16. dir()
描述: dir()
函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__()
,该方法将被调用。如果参数不包含__dir__()
,该方法将最大限度地收集参数信息。
语法: dir([object])
参数: object – 对象、变量、类型
返回值: 返回一个列表
实例:
# dir()
# 这里建议需要的同学实验一下
# 返回当前模块下所有的属性
dir() # 内容较多,不一一列举,建议亲自实验
# 这里返回list的所有属性
dir([]) # # 内容较多,不一一列举,建议亲自实验
17. divmod()
描述: 接受两个非复数字,返回包含商和余数的元组(a//b, a%b)
注: python3 这里不支持复数
语法: divmod(a, b)
参数: a b
均为数字,但非复数
返回值:
- 若a, b均为整数,则返回
(a//b, a%b)
- 若其中一个为浮点数,结果是
(q, a % b)
,q
通常是math.floor(a / b)
但可能会比 1 小。在任何情况下,q * b + a % b
和a
基本相等 - 如果
a % b
非零,它的符号和 b 一样,并且0 <= abs(a % b) < abs(b)
实例:
# divmod()
print(divmod(7,2)) # (3, 1)
print(divmod(5.2,2.5)) # (2.0, 0.20000000000000018)
print(divmod(-7,2)) # (-4, 1)
18. enumerate()
描述: 返回迭代器的__next__()
方法返回一个元组,里面包含一个计数值(从start开始,默认为0)和通过迭代iterable获得的值。等价于:
def enumerate(sequence, start=0):
n = start
for elem in sequence:
yield n, elem
n += 1
语法: enumerate(iterable, start=0)
参数: iterable必须是一个序列,或iterator,或其他支持迭代的对象。
返回值: 返回一个枚举对象。
实例:
# enumerate()
print(list(enumerate(['a', 'b', 'c']))) # [(0, 'a'), (1, 'b'), (2, 'c')]
print(list(enumerate(['a', 'b', 'c'], 1))) # [(1, 'a'), (2, 'b'), (3, 'c')]
19. eval()
描述: expression参数,会作为一个python表达式被解析并求值。使用globals和locals字典作为全局和局部命名空间。如果globals 字典存在且不包含以 __builtins__
为键的值,则会在解析 expression 之前插入以此为键的对内置模块builtins 的字典的引用。 这意味着 expression 通常具有对标准 builtins 模块的完全访问权限且受限的环境会被传播。 如果省略 locals 字典则其默认值为 globals 字典。 如果两个字典同时省略,表达式会在 eval() 被调用的环境中执行。
语法: eval(expression, globals=None, locals=None)
参数: expression是一个字符串,globals必须是一个字典,locals可以是任何映射对象
返回值: 返回值为表达式求值的结果。 语法错误将作为异常被报告。
实例:
# eval()
# 定义一个字符串
s = '2*2+8'
print(type(s)) # <class 'str'>
# 执行该字符串
print(eval(s)) # 12
20. exec()
描述:
语法:
参数:
返回值:
实例:
21. filter()
描述:
语法:
参数:
返回值:
实例:
22. float()
描述: float()
函数用于将函数和字符串转换成浮点数
语法: class float([x])
参数:
- 如果实参是字符串,则它必须是包含十进制数字的字符串,字符串前面可以有符号,可以有空格。可选参数有
'+' 和 '-'
;'+'
对创建的值没有影响。 - 实参也可以是
NaN
(非数字)、正负无穷大的字符串。 - 出去首尾空格后,输入必须遵循以下语法:
sign : := '+' | '-'
infinity : := 'Infinity' | 'inf'
nan : := 'nan'
numeric_value : := floatnumber | infinity | nan
numeric_string : := [sign]numeric_value
这里floatnumber是Python浮点数的字符串形式。字母大小写都可以。
- 如果实参是整数或浮点数,则返回具有相同值(在python浮点精度范围内)得浮点数。若实参在python浮点精度范围外,则会触发
OverflowError
- 若没有实参,则返回
0.0
返回值:
实例:
23. format()
描述:
语法:
参数:
返回值:
实例:
24. frozenset()
描述:
语法:
参数:
返回值:
实例:
25. getattr()
描述:
语法:
参数:
返回值:
实例:
26. globals()
描述:
语法:
参数:
返回值:
实例:
27. hasattr()
描述:
语法:
参数:
返回值:
实例:
-
hash()
-
help()
-
hex()
-
id()
-
input()
-
int()
-
isinstance()
-
issubclass()
-
iter()
-
len()
-
list()
-
locals()
-
map()
-
max()
-
memoryview()
-
min()
-
next()
-
object()
-
oct()
-
open()
-
ord()
-
pow()
-
print()
-
property()
-
range()
-
repr()
-
reverse()
-
round()
-
set()
-
setattr()
-
slice()
-
sorted()
-
staticmethod()
-
str()
-
sum()
-
super()
-
tuple()
-
type()
-
vars()
-
zip()
-
__import__()
由于水平有限,文中错误之处在所难免,恳请大佬不吝赐教!