在 Python 中,整数(int
)是一种基本的数据类型,用于表示任意大小的整数值。
Python 的整数表示具有以下特点:
1. 基本表示
- 整数可以直接用十进制(默认)、二进制、八进制或十六进制表示
- 负数直接加负号
-
,其他进制也支持a = 10 # 十进制 b = 0b1010 # 二进制(前缀 `0b` 或 `0B`),值为 10 c = 0o12 # 八进制(前缀 `0o` 或 `0O`),值为 10 d = 0xA # 十六进制(前缀 `0x` 或 `0X`),值为 10 neg = -42 # 十进制的负数 neg_bin = -0b1010 # 二进制的 -10
2. 任意精度
- Python 的整数是任意精度的(仅受内存限制),不会像其他语言(如 C/Java)那样溢出。
- python的最底层逻辑也和java/C一样会出现数值溢出的情况,但是python中在出现数值溢出时会通过 PyLongObject 实现,动态分配内存以存储大整数。
- 这个PyLongObject 机制就是重新从内存中开辟位数来存储超出的值,因此python中的数值仅仅受内存的限制,而不受32位或64位等等的显示,出现整数溢出的情况。
# 不同进制表示
print(0b1101) # 13(二进制)
print(0o755) # 493(八进制)
print(0xFF) # 255(十六进制)
# 大整数运算
big = 2**1000 # 2的1000次方(一个非常大的数)
print(len(str(big))) # 输出位数
# 类型转换
print(int("1101", 2)) # 13(按二进制解析字符串)
3. 类型与转换
- 类型为
int
,可通过type()
检查:type(10) # <class 'int'>
- 其他类型(如浮点数、字符串)可转为整数:
int(3.14) # 3(浮点数截断) int("42") # 42(字符串解析) int("1010", 2) # 10(按二进制解析字符串)
4. 布尔值是整数的子类
True
和False
本质是1
和0
:True + 1 # 2 False * 5 # 0
5. 下划线分隔(Python 3.6+)
- 可用下划线
_
提高可读性(不影响值):million = 1_000_000 # 等价于 1000000
Python 的整数设计使得数值计算简单且无需担心溢出问题,非常适合科学计算和算法开发。