写Python代码时,整数类型(int)几乎是每个程序都会用到的基础数据类型。看起来简单,但用好了能让你的代码更清晰、更高效。
整数不只是数字
很多人以为整数就是像 42、-7 这样的数,但在Python里,int 类型的功能比你想的灵活得多。比如,你可以直接用下划线分隔大数字,让它们更容易阅读:
population = 1_000_000
price = 19_99
这样写和写 1000000 效果一样,但一眼就能看出是百万,避免数零出错。这在处理金额、统计人数时特别实用。
进制转换不用再查表
遇到二进制、八进制或十六进制数据时,Python 的整数支持直接书写和转换。比如网络配置里的子网掩码、颜色值 #FF5733,都可以直接当整数处理:
binary_num = 0b1010 # 二进制,等于10
octal_num = 0o17 # 八进制,等于15
hex_num = 0xFF # 十六进制,等于255
反过来也能轻松转回来:
bin(10) # '0b1010'
oct(15) # '0o17'
hex(255) # '0xff'
省去了手动计算或调用额外函数的麻烦。
整数大小没有上限?
和其他语言不同,Python 的 int 没有固定位数限制。你可以算非常大的数,比如 2 的 1000 次方,不会溢出:
big = 2 ** 1000
print(len(str(big))) # 输出302,有302位数字
这对做数学计算、密码学相关任务是个隐藏优势,不需要引入额外库就能搞定大数运算。
类型判断和转换小技巧
从用户输入或文件读取的数据通常是字符串,转成整数用 int() 就行:
age = int('25')
但要注意,如果字符串不是纯数字,会报错。稳妥的做法是加个判断:
if age_str.isdigit():
age = int(age_str)
另外,判断一个变量是不是整数,别用 type(x) == int,用 isinstance 更安全:
isinstance(5, int) # True
isinstance(True, int) # True(注意:布尔值是int的子类)
所以需要严格区分时,得额外排除 bool 类型。
实际场景:做个简单的计算器
假设你要写个命令行小工具,让用户输入两个数求和:
def add_numbers():
a = input('输入第一个数: ')
b = input('输入第二个数: ')
if a.isdigit() and b.isdigit():
result = int(a) + int(b)
print(f'结果是: {result}')
else:
print('请输入有效整数!')
add_numbers()
这里面就用到了输入处理、类型转换和错误防护,都是围绕整数类型的基本操作。
掌握这些细节后,你会发现原本需要绕路解决的问题,其实一行 int() 或一个下划线就能搞定。