函数功能:返回一个数的绝对值。
1.基本语法
abs(x)
参数: x 必须为数值类型(整数、浮点数、复数)或实现了 __abs__() 方法的对象 。
返回值:与参数类型一致的非负值。例如:
整数返回整数,浮点数返回浮点数,复数返回模(浮点数) 。
2. 参数类型与返回值示例
(1) 整数与浮点数
正数:直接返回原值。
负数:返回其相反数。
科学计数法:支持如 2.3e-3 或 2.3e1/2 等形式的数值 。
示例
print(abs(-5)) # 输出: 5
print(abs(3.14)) # 输出: 3.14
print(abs(-0.0023)) # 输出: 0.0023
(2) 复数
返回复数的模(即复数到原点的欧几里得距离),计算公式为:a + bj = \sqrt{a^2 + b^2}
print(abs(3 + 4j)) # 输出: 5.0
print(abs(complex(5,6))) # 输出: 7.810249675906654
(3) 其他进制数值
支持二进制(如 0b1011 )、八进制(如 0O71 )、十六进制(如 0xF1 )等形式的数值,返回其十进制绝对值
示例
print(abs(0b1011)) # 输出: 11
print(abs(0xF1)) # 输出: 241
3. 注意事项
非数值类型:若传入非数字类型(如字符串、列表),会抛出 TypeError 异常 。
自定义对象:可通过实现 __abs__() 方法使自定义对象支持 abs() 函数 。
示例
class MyNumber:
def __init__(self, value):
self.value = value
def __abs__(self):
return abs(self.value)
num = MyNumber(-10)
print(abs(num)) # 输出: 10
4. 常见使用场景
数学计算:如计算距离、误差等需忽略符号的场景。
数据处理:标准化数据时去除符号影响。
算法实现:如梯度下降、动态规划等需要绝对值操作的算法。
总结
abs() 是Python中处理数值绝对值的核心工具,支持多种数值类型且用法简洁。需注意参数类型合法性,复数场景下返回模值是其特殊用法。对于进阶需求,可通过自定义对象扩展其功能。