python内置函数 B
Python 解释器内置了很多函数和类型,任何时候都能使用。
B
名称 | 描述 |
---|---|
bin | 将一个整数转换为其二进制表示形式。 |
bool | 将一个值转换为布尔值(True 或 False )。 |
breakpoint | 设置一个断点。 |
bytearray | 创建一个可变字节序列。 |
bytes | 创建一个不可变的字节序列。 |
bin(x)
将一个整数转换为带前缀 “0b” 的二进制数字符串。 结果是一个合法的 Python 表达式。 如果 x 不是一个 Python int
对象,则它必须定义返回一个整数的 __index__()
方法。
bin(3) # '0b11'
bin(-10) # '-0b1010'
# 控制是否显示前缀“0b”
format(14, '#b'), format(14, 'b') # ('0b1110', '1110')
f'{14:#b}', f'{14:b}' # ('0b1110', '1110')
binary_string = bin(10)[2:] # 去掉前缀 '0b' ,如果是负数就会得到'b1010'
print(binary_string) # 输出: '1010'
binary_float = bin(3.14) # 这会抛出 TypeError
如果你尝试对非整数类型使用 bin()
,Python 会抛出一个 TypeError
。
bool(x=False)
class bool(x=False)
返回布尔值,即 True
或 False
两者之一。 x 将使用标准的 真值测试过程 来转换。 如果 x 为假值或者被省略,则返回 False
;在其他情况下,将返回 True
。 bool
类是 int
的子类 (参见 数字类型 — int, float, complex)。 它不能被继续子类化。 它只有 False
和 True
两个实例 (参见 布尔类型 - bool)。
在 3.7 版本发生变更: x 现在只能作为位置参数。
- 数字0、空字符串
""
、空列表[]
、空元组()
、空字典{}
、空集合set()
以及None
都转换为False
。 - 其他所有值都转换为
True
。
# 转换整数为布尔值
bool_value_zero = bool(0)
print(bool_value_zero) # 输出: False
bool_value_non_zero = bool(1)
print(bool_value_non_zero) # 输出: True
# 转换字符串为布尔值
bool_value_empty_string = bool("")
print(bool_value_empty_string) # 输出: False
bool_value_non_empty_string = bool("Hello")
print(bool_value_non_empty_string) # 输出: True
# 转换None为布尔值
bool_value_none = bool(None)
print(bool_value_none) # 输出: False
breakpoint(*args, **kws)
此函数会在调用点进入调试器。具体来说,它调用 sys.breakpointhook()
,直接传递 args
和 kws
。默认情况下, sys.breakpointhook()
调用 pdb.set_trace()
且没有参数。在这种情况下,它纯粹是一个便利函数,因此您不必显式导入 pdb
且键入尽可能少的代码即可进入调试器。但是, sys.breakpointhook()
可以设置为其他一些函数并被 breakpoint()
自动调用,以允许进入你想用的调试器。如果 sys.breakpointhook()
不可访问,这个函数将会引发 RuntimeError
。
在默认情况下,breakpoint()
的行为可使用 PYTHONBREAKPOINT
环境变量来改变。 请参阅 sys.breakpointhook()
了解详细用法。
请注意这并不保证 sys.breakpointhook()
会被替换。
引发一个 审计事件 builtins.breakpoint
并附带参数 breakpointhook
。
在 3.7 版本加入.
breakpoint()
函数用于设置一个断点,这在调试程序时非常有用。当程序执行到breakpoint()
时,它会暂停执行,并允许你检查当前的变量值、调用栈等信息。这通常与Python的内置调试器pdb
一起使用。
def my_function():
x = 10
y = 20
breakpoint() # 在这里设置断点
z = x + y
print(z)
my_function()
一些常用的pdb
命令包括:
l
(list):显示当前位置的代码段。n
(next):执行下一行代码。s
(step):进入函数内部。p variable
:打印变量的值。q
(quit):退出调试器并继续执行程序。c
(continue):继续执行程序,直到遇到下一个断点。
bytearray(source=b’')
class bytearray(source=b’')
class bytearray(source, encoding)
class bytearray(source, encoding, errors)
返回一个新的 bytes 数组。 bytearray
类是一个可变序列,包含范围为 0 <= x < 256 的整数。它有可变序列大部分常见的方法,见 可变序列类型 的描述;同时有 bytes
类型的大部分方法,参见 bytes 和 bytearray 操作。
可选形参 source 可以用不同的方式来初始化数组:
- 如果是一个 string,您必须提供 encoding 参数(errors 参数仍是可选的);
bytearray()
会使用str.encode()
方法来将 string 转变成 bytes。 - 如果是一个 integer,会初始化大小为该数字的数组,并使用 null 字节填充。
- 如果是一个遵循 缓冲区接口 的对象,该对象的只读缓冲区将被用来初始化字节数组。
- 如果是一个 iterable 可迭代对象,它的元素的范围必须是
0 <= x < 256
的整数,它会被用作数组的初始内容。
如果没有实参,则创建大小为 0 的数组。
另见 二进制序列类型 — bytes, bytearray, memoryview 和 bytearray 对象。
bytearray()
是一个内置函数,用于创建一个可变字节序列。与 bytes
对象不同,bytearray
对象的内容是可以修改的。这意味着你可以改变 bytearray
对象中的字节值,而 bytes
对象则是不可变的。
# 创建一个空的 bytearray
ba = bytearray()
print(ba) # 输出: bytearray(b'')
# 创建一个指定长度的 bytearray,用 0 填充
ba = bytearray(10)
print(ba) # 输出可能是: bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
# 创建一个 bytearray,从字符串初始化,并且还要提供相应的encoding参数,errors参数可选
ba = bytearray('hello', 'utf8')
print(ba) # 输出: bytearray(b'hello')
# 创建一个 bytearray,从已有的 bytes 或 bytearray 对象初始化
b = bytes('hello', 'utf-8')
ba = bytearray(b)
print(ba) # 输出: bytearray(b'hello')
# 修改 bytearray 中的元素
ba[0] = ord('B')
print(ba) # 输出: bytearray(b'Bello')
bytes(source=b’')
class bytes(source=b’')
class bytes(source, encoding)
class bytes(source, encoding, errors)
返回一个新的“bytes”对象,这是一个不可变序列,包含范围为 0 <= x < 256
的整数。bytes
是 bytearray
的不可变版本——带有同样不改变序列的方法,支持同样的索引、切片操作。
因此,构造函数的实参和 bytearray()
相同。
字节对象还可以用字面值创建,参见 字符串与字节串字面值。
另见 二进制序列类型 — bytes, bytearray, memoryview,bytes 对象 和 bytes 和 bytearray 操作。
# 创建一个空的 bytes 对象
b = bytes()
print(b) # 输出: b''
# 创建一个指定长度的 bytes 对象,用 0 填充
b = bytes(10)
print(b) # 输出可能是: b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
# 创建一个 bytes 对象,从已有的 bytes 或 bytearray 对象初始化
b1 = bytes([65, 66, 67]) # 使用整数列表初始化
print(b1) # 输出: b'ABC'
b2 = bytes('hello', 'utf-8') # 从字符串和编码初始化
print(b2) # 输出: b'hello'
# 注意:bytes 对象是不可变的,尝试修改它会抛出异常
# b2[0] = ord('B') # 这会抛出 TypeError