什么是 int() 函数?
在 Python 中,int() 是一个内置函数,用于将其他类型的对象转换为整数(int)类型。它支持多种输入类型,包括字符串、浮点数、布尔值,甚至自定义对象(需实现特定方法)。
基本用法示例
1. 字符串转整数
s = "123"
num = int(s)
print(num) # 输出: 123
⚠️ 注意:字符串必须表示有效的整数,否则会抛出 ValueError。
2. 浮点数转整数
f = 45.67
num = int(f)
print(num) # 输出: 45(直接截断小数部分)
3. 布尔值转整数
print(int(True)) # 输出: 1
print(int(False)) # 输出: 0
处理异常:安全转换
使用 try...except 避免程序崩溃:
def safe_int(obj, default=0):
try:
return int(obj)
except (ValueError, TypeError):
return default
print(safe_int("abc")) # 输出: 0
print(safe_int("42")) # 输出: 42
print(safe_int(None)) # 输出: 0
自定义对象支持 int() 转换
通过在类中定义 __int__() 方法,可以让自定义对象被 int() 调用:
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __int__(self):
return int((self.x ** 2 + self.y ** 2) ** 0.5)
p = Point(3, 4)
print(int(p)) # 输出: 5(欧几里得距离取整)
常见错误与注意事项
- 空字符串或无效格式:如
int("")或int("12.3")会报错。 - None 类型:不能直接转换,会抛出
TypeError。 - 进制转换:支持指定进制,例如
int("1010", 2)返回10。
总结
Python 的 int() 函数功能强大但需谨慎使用。建议在不确定输入类型时,结合异常处理机制确保程序健壮性。对于复杂对象,可通过魔术方法(如 __int__)提供自定义转换逻辑。