Python abs() 函数:绝对值示例

Python 绝对()
Python 绝对() 是标准库中提供的内置函数 Python它返回给定数字的绝对值。数字的绝对值是指不考虑符号的值。该数字可以是整数、浮点数或复数。如果给定的数字是复数,则返回其模。
句法
abs() 函数的语法如下所示:
abs(value)
参数(值)
要提供给 abs() 以获取绝对值的输入值。它可以是整数、浮点数或复数。
返回值:
abs() 函数返回给定数字的绝对值。
- 如果输入值是整数,则返回值也是整数。
- 如果输入值是浮点数,则返回值也是浮点数。
- 如果输入是复数,则返回值将是输入的幅度。
例子
以下示例展示了 abs() 函数对整数、浮点数和复数值的应用。
Code 示例 1:整数和浮点数
要计算一个整数和一个浮点数的绝对值,请查看以下代码:
# testing abs() for an integer and float int_num = -25 float_num = -10.50 print("The absolute value of an integer number is:", abs(int_num)) print("The absolute value of a float number is:", abs(float_num))
输出:
The absolute value of an integer number is: 25 The absolute value of a float number is: 10.5
例 2:复数
要计算复数的绝对值,请使用以下代码:
# testing abs() for a complex number complex_num = (3+10j) print("The magnitude of the complex number is:", abs(complex_num))
输出:
The magnitude of the complex number is: 10.44030650891055
如何求列表的绝对值 Python
`abs()` 函数只能处理单个数字,因此将整个列表传递给它会引发 TypeError。要将其应用于列表中的每个元素,请使用列表推导式,对每个元素调用 `abs()` 函数:
numbers = [12, 30, -33, -22, 77, -100] abs_numbers = [abs(num) for num in numbers] print(abs_numbers)
输出:
[12, 30, 33, 22, 77, 100]
列表推导式会保留原始顺序并返回一个新的正值列表。例如,您可以使用内置的 map() 函数实现相同的结果。 list(map(abs, numbers))它将 abs() 应用于每个元素,而无需编写显式循环。
- 当您还想筛选或转换值时,请使用列表推导式。
- 使用 map() 可以进行简短易读的调用,直接应用 abs()。
- 对于大型数值数据集,使用带有 np.abs() 的 NumPy 数组比使用 Python 环。
Python abs() 与 math.fabs()
Python 提供了两种获取绝对值的方法:内置的 abs() 函数和 math 模块的 fabs() 函数。它们看起来相似,但行为不同:
import math print(abs(-7)) # 7 (int is unchanged) print(math.fabs(-7)) # 7.0 (float result)
输出:
7 7.0
这两个函数的主要区别在于:
- 返回类型: abs() 会保留输入类型,对于整数返回整数,而 math.fabs() 总是返回浮点数。
- 进口: abs() 函数始终可用,但 math.fabs() 函数需要
import math. - 复数: abs() 返回复数的模,而 math.fabs() 对于复数输入会引发 TypeError。
实际应用 Python abs() 函数
由于 abs() 函数会忽略符号信息,因此当只需要考虑数值的大小而不需要考虑其方向时,它非常有用。一个常见的例子是求两个读数之间的差值:
temp_morning = 12 temp_night = -5 print("Temperature change:", abs(temp_morning - temp_night))
输出:
Temperature change: 17
绝对值的日常应用包括:
- 距离和差异: 测量两个点、温度或时间戳之间的差距,无论哪个值更大。
- 错误指标: 计算预测值与实际值之间的绝对误差。
- 公差检查: 测试结果是否足够接近目标值,例如:
abs(actual - expected) < 0.01. - 财经: 报告盈亏大小,但不报告正负号。
像 round() 函数abs() 是一个内置函数,您可以直接调用它,而无需导入任何模块。
