Python 标准库非常庞大,所提供的组件涉及范围十分广泛,在这列举几个仅供参考,详细请观看官方文档:Python标准库
内置函数
Python 解释器内置了很多函数和类型,任何时候都能使用。以下按字母顺序给出列表。
内置常量
有少数的常量存在于内置命名空间中。
False
bool 类型的假值。 给 False 赋值是非法的并会引发 SyntaxError。
True
bool 类型的真值。 给 True 赋值是非法的并会引发 SyntaxError。
None
通常被用来代表空值的对象,例如在未向某个函数传入默认参数时。
给 None 赋值是非法的并会引发 SyntaxError。
None 是 NoneType 类型的唯一实例。
NotImplemented
应当由双目运算特殊方法(如 eq(), lt(), add(), rsub() 等)返回的特殊值,用于表明运算没有针对其他类型的实现;
也可由原地双目运算特殊方法(如 imul(), iand() 等)出于同样的目的而返回。
它不应在布尔运算中被求值。
NotImplemented 是 types.NotImplementedType 类型的唯一实例。
Ellipsis
与省略号字面值 “…” 相同。
该特殊值主要是与用户定义的容器数据类型的扩展切片语法结合使用。
Ellipsis 是 types.EllipsisType 类型的唯一实例。
debug
如果 Python 没有以 -O 选项启动,则此常量为真值。
内置类型
逻辑值检测
任何对象都可以进行逻辑值的检测,以便在 if 或 while 作为条件或是作为下文所述布尔运算的操作数来使用。
一个对象在默认情况下均被视为真值,除非当该对象被调用时其所属类定义了 bool() 方法且返回 False 或是定义了 len() 方法且返回零。
会被视为假值的内置对象:
被定义为假值的常量: None 和 False。
任何数值类型的零: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
空的序列和多项集: ‘’, (), [], {}, set(), range(0)
产生布尔值结果的运算和内置函数总是返回 0 或 False 作为假值,1 或 True 作为真值,除非另行说明。 (重要例外:布尔运算 or 和 and 总是返回其中一个操作数。)
布尔运算 — and, or, not
布尔运算,按优先级升序排列:
注释:
这是个短路运算符,因此只有在第一个参数为真值时才会对第二个参数求值。
not 的优先级比非布尔运算符低,因此 not a == b 会被解读为 not (a == b) 而 a == not b 会引发语法错误。
比较运算
优先级相同(比布尔运算的优先级高)
数字类型 — int, float, complex
三种不同的数字类型: 整数, 浮点数 和 复数。
布尔值属于整数的子类型。
整数具有无限的精度。
浮点数通常使用 C 中的 double 来实现;
整数类型的按位运算
按位运算只对整数有意义。
注释:
负的移位数是非法的,会导致引发 ValueError。
左移 n 位等价于乘以 pow(2, n) 。
右移 n 位等价于除以 pow(2, n) ,作向下取整除法。
使用带有至少一个额外符号扩展位的有限个二进制补码表示(有效位宽度为 1 + max(x.bit_length(), y.bit_length()) 或以上)执行这些计算就足以获得相当于有无数个符号位时的同样结果。
整数类型的附加方法
int.bit_length()
int.bit_count()
int.to_bytes(length, byteorder, *, signed=False)
classmethod int.from_bytes(bytes, byteorder, *, signed=False)
int.as_integer_ratio()
浮点类型的附加方法
float 类型实现了 numbers.Real abstract base class。
float.as_integer_ratio()
float.is_integer()
float.hex()
classmethod float.fromhex(s)
迭代器类型
通过使用两个单独方法来实现的;它们被用于允许用户自定义类对迭代的支持。
container.iter()
迭代器对象自身需要支持以下两个方法,它们共同组成了 迭代器协议:
iterator.iter()
返回迭代器对象本身。 这是同时允许容器和迭代器配合 for 和 in 语句使用所必须的。
iterator.next()
从容器中返回下一项。 如果已经没有项可返回,则会引发 StopIteration 异常。
一旦迭代器的 next() 方法引发了 StopIteration,它必须一直对后续调用引发同样的异常。 不遵循此行为特性的实现将无法正常使用。
序列类型 — list, tuple, range
不可变序列类型
不可变序列类型普遍实现而可变序列类型未实现的唯一操作就是对 hash() 内置函数的支持。
这种支持允许不可变类型,例如 tuple 实例被用作 dict 键,以及存储在 set 和 frozenset 实例中。
尝试对包含有不可哈希值的不可变序列进行哈希运算将会导致 TypeError。
可变序列类型
以下表格中的操作是在可变序列类型上定义的。
collections.abc.MutableSequence ABC 被提供用来更容易地在自定义序列类型上正确实现这些操作。
表格中的 s 是可变序列类型的实例,t 是任意可迭代对象,而 x 是符合对 s 所规定类型与值限制的任何对象 (例如,bytearray 仅接受满足 0 <= x <= 255 值限制的整数)。
可以用多种方式构建列表:
使用一对方括号来表示空列表: []
使用方括号,其中的项以逗号分隔: [a], [a, b, c]
使用列表推导式: [x for x in iterable]
使用类型的构造器: list() 或 list(iterable)
可以用多种方式构建元组:
使用一对圆括号来表示空元组: ()
使用一个后缀的逗号来表示单元组: a, 或 (a,)
使用以逗号分隔的多个项: a, b, c or (a, b, c)
使用内置的 tuple(): tuple() 或 tuple(iterable)
range 对象
range 类型表示不可变的数字序列,通常用于在 for 循环中循环指定的次数。
class range(stop)
class range(start, stop[, step])
start
start 形参的值 (如果该形参未提供则为 0)
stop
stop 形参的值
step
step 形参的值 (如果该形参未提供则为 1)
文本序列类型 — str
字符串字面值有多种不同的写法:
单引号: ‘允许包含有 “双” 引号’
双引号: “允许包含有 ‘单’ 引号”。
三重引号: ‘’‘三重单引号’’’, “”“三重双引号”""
需要获取Python标准库PDF资料可以进企鹅群:690577709 免费拿
字符串的方法
str.capitalize()
返回原字符串的副本,其首个字符大写,其余为小写。
str.casefold()
返回原字符串消除大小写的副本。 消除大小写的字符串可用于忽略大小写的匹配。
str.center(width[, fillchar])
返回长度为 width 的字符串,原字符串在其正中。
使用指定的 fillchar 填充两边的空位(默认使用 ASCII 空格符)。
如果width 小于等于 len(s) 则返回原字符串的副本。
str.count(sub[, start[, end]])
返回子字符串 sub 在 [start, end] 范围内非重叠出现的次数。
可选参数 start 与 end 会被解读为切片表示法。
str.encode(encoding=‘utf-8’, errors=‘strict’)
返回原字符串编码为字节串对象的版本。
默认编码为 ‘utf-8’。
可以给出 errors 来设置不同的错误处理方案。
errors 的默认值为 ‘strict’,表示编码错误会引发 UnicodeError。
str.endswith(suffix[, start[, end]])
如果字符串以指定的 suffix 结束返回 True,否则返回 False。
suffix 也可以为由多个供查找的后缀构成的元组。
str.expandtabs(tabsize=8)
返回字符串的副本,其中所有的制表符会由一个或多个空格替换,具体取决于当前列位置和给定的制表符宽度。
str.find(sub[, start[, end]])
返回子字符串 sub 在 s[start:end] 切片内被找到的最小索引。 可选参数 start 与 end 会被解读为切片表示法。
str.format(*args, **kwargs)
执行字符串格式化操作。
调用此方法的字符串可以包含字符串字面值或者以花括号 {} 括起来的替换域。
str.format_map(mapping)
类似于 str.format(**mapping),不同之处在于 mapping 会被直接使用而不是复制到一个 dict。
str.index(sub[, start[, end]])
类似于 find(),但在找不到子类时会引发 ValueError。
str.isalnum()
字符串中的所有字符都是字母或数字且至少有一个字符,则返回 True , 否则返回 False 。
c.isalpha() ,c.isdecimal() , c.isdigit() ,或 c.isnumeric() 之中有一个返回 True,则字符c
是字母或数字。
str.isalpha()
字符串中的所有字符都是字母,并且至少有一个字符,返回 True ,否则返回 False 。
str.isascii()
字符串为空或字符串中的所有字符都是 ASCII ,返回 True ,否则返回 False 。
str.isdecimal()
字符串中的所有字符都是十进制字符且该字符串至少有一个字符,则返回 True , 否则返回 False 。
str.isdigit()
字符串中的所有字符都是数字,并且至少有一个字符,返回 True ,否则返回 False 。
str.isidentifier()
字符串是有效的标识符,返回 True ,依据语言定义, 标识符和关键字 节。
调用 keyword.iskeyword() 来检测字符串 s 是否为保留标识符,例如 def 和 class。
str.islower()
字符串中至少有一个区分大小写的字符 4 且此类字符均为小写则返回 True ,否则返回 False 。
str.isnumeric()
字符串中至少有一个字符且所有字符均为数值字符则返回 True ,否则返回 False 。
str.isprintable()
字符串中所有字符均为可打印字符或字符串为空则返回 True ,否则返回 False 。
str.isspace()
字符串中只有空白字符且至少有一个字符则返回 True ,否则返回 False 。
str.istitle()
字符串中至少有一个字符且为标题字符串则返回 True ,例如大写字符之后只能带非大写字符而小写字符必须有大写字符打头。
否则返回False 。
str.isupper()
如果字符串中至少有一个区分大小写的字符 4 且此类字符均为大写则返回 True ,否则返回 False 。
str.join(iterable)
返回一个由 iterable 中的字符串拼接而成的字符串。
如果 iterable 中存在任何非字符串值包括 bytes 对象则会引发TypeError。
调用该方法的字符串将作为元素之间的分隔。
str.ljust(width[, fillchar])
返回长度为 width 的字符串,原字符串在其中靠左对齐。
使用指定的 fillchar 填充空位 (默认使用 ASCII 空格符)。
width 小于等于 len(s) 则返回原字符串的副本。
str.lower()
返回原字符串的副本,其所有区分大小写的字符 4 均转换为小写。
str.lstrip([chars])
返回原字符串的副本,移除其中的前导字符。
chars 参数为指定要移除字符的字符串。
省略或为 None,则 chars参数默认移除空白符。
static str.maketrans(x[, y[, z]])
此静态方法返回一个可供 str.translate() 使用的转换对照表。
str.partition(sep)
在 sep 首次出现的位置拆分字符串,返回一个 3 元组,其中包含分隔符之前的部分、分隔符本身,以及分隔符之后的部分。
分隔符未找到,则返回的 3 元组中包含字符本身以及两个空字符串。
str.removeprefix(prefix, /)
字符串以 前缀 字符串开头,返回 string[len(prefix):] 。
str.removesuffix(suffix, /)
str.replace(old, new[, count])
返回字符串的副本,其中出现的所有子字符串 old 都将被替换为 new。
给出了可选参数 count,则只替换前 count 次出现。
str.rfind(sub[, start[, end]])
返回子字符串 sub 在字符串内被找到的最大(最右)索引,这样 sub 将包含在 s[start:end] 当中。
可选参数 start 与end 会被解读为切片表示法。 如果未找到则返回 -1。
str.rindex(sub[, start[, end]])
类似于 rfind(),但在子字符串 sub 未找到时会引发 ValueError。
str.rjust(width[, fillchar])
返回长度为 width 的字符串,原字符串在其中靠右对齐。
使用指定的 fillchar 填充空位 (默认使用 ASCII 空格符)。
width 小于等于 len(s) 则返回原字符串的副本。
str.rpartition(sep)
在 sep 最后一次出现的位置拆分字符串,返回一个 3 元组,其中包含分隔符之前的部分、分隔符本身,以及分隔符之后的部分。
分隔符未找到,则返回的 3 元组中包含两个空字符串以及字符串本身。
str.rsplit(sep=None, maxsplit=- 1)
返回一个由字符串内单词组成的列表,使用 sep 作为分隔字符串。
给出了 maxsplit,则最多进行 maxsplit 次拆分,从最右边 开始。
sep 未指定或为 None,任何空白字符串都会被作为分隔符。
除了从右边开始拆分,rsplit()的其他行为都类似于下文所述的 split()。
str.rstrip([chars])
返回原字符串的副本,移除其中的末尾字符。
chars 参数为指定要移除字符的字符串。
省略或为 None,则 chars 参数默认移除空白符。
实际上 chars 参数并非指定单个后缀;
str.split(sep=None, maxsplit=- 1)
返回一个由字符串内单词组成的列表,使用 sep 作为分隔字符串。
如果给出了 maxsplit,则最多进行 maxsplit次拆分(因此,列表最多会有 maxsplit+1 个元素)。
maxsplit 未指定或为 -1,则不限制拆分次数(进行所有可能的拆分)。
str.startswith(prefix[, start[, end]])
字符串以指定的 prefix 开始则返回 True,否则返回 False。
prefix 也可以为由多个供查找的前缀构成的元组。
有可选项 start,将从所指定位置开始检查。
有可选项 end,将在所指定位置停止比较。
str.strip([chars])
返回原字符串的副本,移除其中的前导和末尾字符。
chars 参数为指定要移除字符的字符串。
省略或为 None,则 chars参数默认移除空白符。
str.title()
返回原字符串的标题版本,其中每个单词第一个字母为大写,其余字母为小写。
str.translate(table)
返回原字符串的副本,其中每个字符按给定的转换表进行映射。
转换表必须是一个使用 getitem() 来实现索引操作的对象,通常为mapping 或 sequence。
str.upper()
返回原字符串的副本,其中所有区分大小写的字符 4 均转换为大写。
str.zfill(width)
返回原字符串的副本,在左边填充 ASCII ‘0’ 数码使其长度变为 width。
正负值前缀 (’+’/’-’) 的处理方式是在正负符号之后 填充而非在之前。
内置异常
下列异常主要被用作其他异常的基类。
exception BaseException
所有内置异常的基类。
它不应该被用户自定义类直接继承 (这种情况请使用 Exception)。
如果在此类的实例上调用str(),则会返回实例的参数表示,或者当没有参数时返回空字符串。
args
传给异常构造器的参数元组。
exception Exception
所有内置的非系统退出类异常都派生自此类。
所有用户自定义异常也应当派生自此类。
exception ArithmeticError
此基类用于派生针对各种算术类错误而引发的内置异常:
OverflowError, ZeroDivisionError,FloatingPointError。
exception BufferError
当与 缓冲区 相关的操作无法执行时将被引发。
exception LookupError
此基类用于派生当映射或序列所使用的键或索引无效时引发的异常: IndexError, KeyError。
具体异常
以下异常属于经常被引发的异常。
exception AssertionError
当 assert 语句失败时将被引发。
exception AttributeError
当属性引用 (参见 属性引用) 或赋值失败时将被引发。
exception EOFError
当 input() 函数未读取任何数据即达到文件结束条件 (EOF) 时将被引发。
exception FloatingPointError
目前未被使用。
exception GeneratorExit
当一个 generator 或 coroutine 被关闭时将被引发;
exception ImportError
当 import 语句尝试加载模块遇到麻烦时将被引发。
exception ModuleNotFoundError
ImportError 的子类,当一个模块无法被定位时将由 import 引发。
当在 sys.modules 中找到 None时也会被引发。
exception IndexError
当序列抽取超出范围时将被引发。 (切片索引会被静默截短到允许的范围;如果指定索引不是整数则 TypeError 会被引发。)
exception KeyError
当在现有键集合中找不到指定的映射(字典)键时将被引发。
exception KeyboardInterrupt
当用户按下中断键 (通常为 Control-C 或 Delete) 时将被引发。
exception MemoryError
当一个操作耗尽内存但情况仍可(通过删除一些对象)进行挽救时将被引发。
exception NameError
当某个局部或全局名称未找到时将被引发。
exception NotImplementedError
此异常派生自 RuntimeError。
exception OSError([arg])
exception OSError(errno, strerror[, filename[, winerror[, filename2]]])
此异常在一个系统函数返回系统相关的错误时将被引发,此类错误包括 I/O 操作失败例如 “文件未找到” 或 “磁盘已满” 等(不包括非法参数类型或其他偶然性错误)。
exception OverflowError
当算术运算的结果大到无法表示时将被引发。
这对整数来说不可能发生(宁可引发 MemoryError 也不会放弃尝试)。
但是出于历史原因,有时也会在整数超出要求范围的情况下引发 OverflowError。
因为在 C中缺少对浮点异常处理的标准化,大多数浮点运算都不会做检查。
exception RecursionError
此异常派生自 RuntimeError。
exception ReferenceError
此异常将在使用 weakref.proxy() 函数所创建的弱引用来访问该引用的某个已被作为垃圾回收的属性时被引发。
exception RuntimeError
当检测到一个不归属于任何其他类别的错误时将被引发。 关联的值是一个指明究竟发生了什么问题的字符串。
exception StopIteration
由内置函数 next() 和 iterator 的 next() 方法所引发,用来表示该迭代器不能产生下一项。
exception StopAsyncIteration
必须由一个 asynchronous iterator 对象的 anext() 方法来引发以停止迭代操作。
exception SyntaxError(message, details)
当解析器遇到语法错误时引发。
这可以发生在 import 语句,对内置函数 compile(), exec() 或 eval()的调用,或是读取原始脚本或标准输入(也包括交互模式)的时候。
异常实例的 str() 只返回错误消息。
错误详情为一个元组,其成员也可在单独的属性中分别获取。
filename
发生语法错误所在文件的名称。
lineno
发生错误所在文件中的行号。 行号索引从 1 开始:文件中首行的 lineno 为 1。
offset
发生错误所在文件中的列号。 列号索引从 1 开始:行中首个字符的 offset 为 1。
text
错误所涉及的源代码文本。
end_lineno
发生的错误在文件中的末尾行号。 这个索引是从 1 开始的:文件中首行的 lineno 为 1。
end_offset
发生的错误在文件中的末尾列号。
exception IndentationError
与不正确的缩进相关的语法错误的基类。 这是 SyntaxError 的一个子类。
exception TabError
当缩进包含对制表符和空格符不一致的使用时将被引发。 这是 IndentationError 的一个子类。
exception SystemError
当解释器发现内部错误,但情况看起来尚未严重到要放弃所有希望时将被引发。
exception SystemExit
此异常由 sys.exit() 函数引发。
code
传给构造器的退出状态码或错误信息(默认为 None。)
exception TypeError
当一个操作或函数被应用于类型不适当的对象时将被引发。
exception UnboundLocalError
当在函数或方法中对某个局部变量进行引用,但该变量并未绑定任何值时将被引发。 此异常是 NameError 的一个子类。
exception UnicodeError
当发生与 Unicode 相关的编码或解码错误时将被引发。
此异常是 ValueError 的一个子类。
UnicodeError 具有一些描述编码或解码错误的属性。
例如 err.object[err.start:err.end] 会给出导致编解码器失败的特定无效输入。
encoding
引发错误的编码名称。
reason
描述特定编解码器错误的字符串。
object
编解码器试图要编码或解码的对象。
start
object 中无效数据的开始位置索引。
end
object 中无效数据的末尾位置索引(不含)。
exception UnicodeEncodeError
当在编码过程中发生与 Unicode 相关的错误时将被引发。 此异常是 UnicodeError 的一个子类。
exception UnicodeDecodeError
当在解码过程中发生与 Unicode 相关的错误时将被引发。 此异常是 UnicodeError 的一个子类。
exception UnicodeTranslateError
在转写过程中发生与 Unicode 相关的错误时将被引发。 此异常是 UnicodeError 的一个子类。
exception ValueError
当操作或函数接收到具有正确类型但值不适合的参数,并且情况不能用更精确的异常例如 IndexError 来描述时将被引发。
exception ZeroDivisionError
当除法或取余运算的第二个参数为零时将被引发。 关联的值是一个字符串,指明操作数和运算的类型。
exception EnvironmentError
exception IOError
exception WindowsError
限在 Windows 中可用。
OS 异常
下列异常均为 OSError 的子类,它们将根据系统错误代码被引发。
exception BlockingIOError
当一个操作会被某个设置为非阻塞操作的对象(例如套接字)所阻塞时将被引发。 对应于 errno EAGAIN, EALREADY, EWOULDBLOCK 和 EINPROGRESS。
除了 OSError 已有的属性,BlockingIOError 还有一个额外属性:
characters_written 一个整数,表示在被阻塞前已写入到流的字符数。 当使用来自 io 模块的带缓冲 I/O 类时此属性可用。
exception ChildProcessError
当一个子进程上的操作失败时将被引发。 对应于 errno ECHILD。
exception ConnectionError
与连接相关问题的基类。
其子类有 BrokenPipeError, ConnectionAbortedError, ConnectionRefusedError 和
ConnectionResetError。
exception BrokenPipeError
ConnectionError 的子类,当试图写入另一端已被关闭的管道,或是试图写入已关闭写入的套接字时将被引发。
对应于 errnoEPIPE 和 ESHUTDOWN。
exception ConnectionAbortedError
ConnectionError 的子类,当连接尝试被对端中止时将被引发。 对应于 errno ECONNABORTED。
exception ConnectionRefusedError
ConnectionError 的子类,当连接尝试被对端拒绝时将被引发。 对应于 errno ECONNREFUSED。
exception ConnectionResetError
ConnectionError 的子类,当连接被对端重置时将被引发。 对应于 errno ECONNRESET。
exception FileExistsError
当试图创建一个已存在的文件或目录时将被引发。 对应于 errno EEXIST。
exception FileNotFoundError
当所请求的文件或目录不存在时将被引发。 对应于 errno ENOENT。
exception InterruptedError
当系统调用被输入信号中断时将被引发。 对应于 errno EINTR。
exception IsADirectoryError
当请求对一个目录执行文件操作 (例如 os.remove()) 将被引发。 对应于 errno EISDIR。
exception NotADirectoryError
当在非目录上请求目录操作 (例如 os.listdir()) 时被引发。
在大多数 POSIX平台上,它还可能在某个操作尝试以目录方式打开或遍历非目录时被引发。
对应于 errno ENOTDIR。
exception PermissionError
当在没有足够操作权限的情况下试图执行某个操作时将被引发 —— 例如缺少文件系统权限。 对应于 errno EACCES 和 EPERM。
exception ProcessLookupError
当给定的进程不存在时将被引发。 对应于 errno ESRCH。
exception TimeoutError
当一个系统函数发生系统级超时的情况下将被引发。 对应于 errno ETIMEDOUT。
exception Warning
警告类别的基类。
exception UserWarning
用户代码所产生警告的基类。
exception DeprecationWarning
如果所发出的警告是针对其他 Python 开发者的,则以此作为与已弃用特性相关警告的基类。
exception PendingDeprecationWarning
对于已过时并预计在未来弃用,但目前尚未弃用的特性相关警告的基类。
exception SyntaxWarning
与模糊的语法相关的警告的基类。
exception RuntimeWarning
与模糊的运行时行为相关的警告的基类。
exception FutureWarning
如果所发出的警告是针对以 Python 所编写应用的最终用户的,则以此作为与已弃用特性相关警告的基类。
exception ImportWarning
与在模块导入中可能的错误相关的警告的基类。
exception UnicodeWarning
与 Unicode 相关的警告的基类。
exception EncodingWarning
与编码格式相关的警告的基类。
exception BytesWarning
与 bytes 和 bytearray 相关的警告的基类。
exception ResourceWarning
资源使用相关警告的基类。
推荐小白入门基础自学视频
Python环境搭建
Python基础
Python数据类型
Python流程控制、函数
Python(小白完结篇):条件判断
Python(小白完结篇):循环控制
Python(小白完结篇):函数的定义&函数的参数
Python(小白完结篇):函数的参数补充
Python(小白完结篇):函数的返回值-函数的全局局部变量
Python(小白完结篇):全局变量定义的位置-函数中的多个返回值
Python(小白完结篇):函数的循环嵌套
Python(小白完结篇):形参实参
Python(小白完结篇):range函数
Python(小白完结篇):递归
Python(小白完结篇):递归练习
Python(小白完结篇):匿名函数
Python(小白完结篇):推导式
Python(小白完结篇):迭代器
Python(小白完结篇):生成器
Python(小白完结篇):闭包
Python(小白完结篇):装饰器
Python(小白完结篇):内置函数