pin_drop当前位置:知识文库 ❯ 图文
Python整数类型int
整数(Integer)是Python中最基本的数字类型之一,用于表示没有小数部分的数值。Python的整数类型与许多其他编程语言不同,它没有固定的大小限制,可以表示任意大的整数,这得益于Python底层的自动内存管理机制。在Python 3中,int类型统一了Python 2中的int和long类型,成为唯一的整数类型。
整数定义
在Python中,整数可以直接通过字面量定义,无需声明类型:
代码示例
a = 10
b = -25
c = 0
print(type(a))
print(type(b))
print(type(c))输出:
代码示例
<class 'int'>
<class 'int'>
<class 'int'>
无论是正数、负数还是零,Python都会自动将其识别为int类型。
不同进制表示
Python支持多种进制来表示整数,这在处理底层数据、位运算和颜色编码等场景中非常有用。
二进制(Binary)
以0b或0B开头,由数字0和1组成:
代码示例
bin_num = 0b1010
print(bin_num)
print(bin(bin_num))输出:
代码示例
10
0b1010八进制(Octal)
以0o或0O开头,由数字0到7组成:
代码示例
oct_num = 0o12
print(oct_num)
print(oct(oct_num))输出:
代码示例
10
0o12十进制(Decimal)
即日常使用的数字表示方式,由数字0到9组成,无需前缀:
代码示例
dec_num = 10
print(dec_num)输出:
代码示例
10十六进制(Hexadecimal)
以0x或0X开头,由数字0到9和字母a到f(或A到F)组成:
代码示例
hex_num = 0xA
print(hex_num)
print(hex(hex_num))输出:
代码示例
10
0xa大整数支持
Python的整数类型没有溢出问题,可以表示任意大的整数:
代码示例
big_num = 10 ** 100
print(big_num)
print(type(big_num))输出:
代码示例
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
<class 'int'>提示:Python会自动分配足够的内存来存储大整数,无需担心溢出问题,这是Python相比C、Java等语言的一大优势。
整数运算
算术运算
代码示例
print(10 + 3)
print(10 - 3)
print(10 * 3)
print(10 / 3)
print(10 // 3)
print(10 % 3)
print(10 ** 3)输出:
代码示例
13
7
30
3.3333333333333335
3
1
1000注意:除法运算
/的结果始终是浮点数,即使能整除也是如此。如果需要整数结果,请使用整除运算//。
位运算
代码示例
print(0b1010 & 0b1100)
print(0b1010 | 0b1100)
print(0b1010 ^ 0b1100)
print(~0b1010)
print(0b1010 << 2)
print(0b1010 >> 2)输出:
代码示例
8
14
6
-11
40
2进制转换函数
Python提供了三个内置函数用于进制转换:
此外,使用int()函数可以将其他进制的字符串转换为十进制整数:
代码示例
print(int('1010', 2))
print(int('12', 8))
print(int('A', 16))
print(int('a', 16))输出:
代码示例
10
10
10
10进制对比表格
代码示例
示例1:进制转换工具
代码示例
def convert_number(num):
print(f"十进制: {num}")
print(f"二进制: {bin(num)}")
print(f"八进制: {oct(num)}")
print(f"十六进制: {hex(num)}")
convert_number(255)输出:
代码示例
十进制: 255
二进制: 0b11111111
八进制: 0o377
十六进制: 0xff示例2:大整数运算
代码示例
a = 2 ** 64
b = 2 ** 64 + 1
print(f"2的64次方: {a}")
print(f"2的64次方加1: {b}")
print(f"它们的差: {b - a}")
print(f"它们的积: {a * b}")输出:
代码示例
2的64次方: 18446744073709551616
2的64次方加1: 18446744073709551617
它们的差: 1
它们的积: 340282366920938463481821351505477763072注意事项
Python 3中只有
int一种整数类型,不再区分int和long。除法运算
/始终返回浮点数,即使两个整数能整除。整除运算
//向负无穷方向取整,而非向零取整:-7 // 2的结果是-4而非-3。八进制前缀是
0o(数字0加小写字母o),不要误写为0(Python 2的旧语法)。
bin()、oct()、hex()返回的是字符串,不是数字。Python整数没有溢出问题,但大整数运算会消耗更多内存和时间。
小结
本节介绍了Python整数类型的核心知识:
-
Python的
int类型可以表示任意大的整数,没有溢出限制 -
支持二进制(
0b)、八进制(0o)、十进制、十六进制(0x)四种进制表示 -
bin()、oct()、hex()函数用于进制转换 -
int()函数可以将指定进制的字符串转换为十进制整数 -
整数支持丰富的算术运算和位运算
练习题
练习1
编写一个程序,输入一个十进制整数,分别输出它的二进制、八进制和十六进制表示(不包含前缀)。
提示:可以使用bin()、oct()、hex()函数后切片去掉前缀,或使用格式化字符串format()。
练习2
计算2 ** 1000的结果,并统计该结果的十进制表示中有多少个数字。
提示:将结果转换为字符串后使用len()函数。
常见问题
Python的整数类型有大小限制吗?
Python的int类型没有固定的大小限制,可以表示任意大的整数。Python会自动分配足够的内存来存储大整数,这与C、Java等语言不同。
为什么Python中除法运算/返回的是浮点数?
在Python 3中,除法运算/始终返回浮点数,这是为了保持数学上的精确性。如果需要整数结果,请使用整除运算//。
如何在不同进制之间进行转换?
使用bin()、oct()、hex()函数可以将十进制数转换为二进制、八进制、十六进制字符串;使用int(字符串, 进制)可以将其他进制的字符串转换为十进制整数。
什么是位运算?Python支持哪些位运算?
位运算是直接对整数的二进制位进行操作的运算。Python支持的位运算包括:&(与)、|(或)、^(异或)、~(非)、<<(左移)、>>(右移)。
本文涉及AI创作
内容由AI创作,请仔细甄别