在这篇文章中:
获取不常见的Python值的绝对值
Python中复数的绝对值
非基数10的绝对值
二进制数的绝对值
科学计数法的绝对价值
十六进制数的绝对值
八进制数的绝对值
Python的无穷大和NaN的绝对值
概要
#获取不常见的Python值的绝对值
在Python中,我们使用函数获得数字的绝对值abs()。当我们给该函数一个整数或浮点数时,它返回返回该数的非负值(Python Docs,nd)。
但是abs()可以做得更多。此函数还知道如何处理不太常见的值。让我们来看看:
对于复数,abs()返回该数字的大小。
如果数字的底数不同于10,则abs()仍返回以10为底的绝对值。
具有正或负无穷大时,abs()返回绝对正无穷大。
并使用非数字值(NaN)abs()返回NaN。
让我们看看代码如何查找这些abs()行为。
#在Python复数的绝对值
甲复数处于方程的形式表示的数字,实部和一个所谓的虚部。后者为方程式提供了解决方案,而该方程式不能满足实数。
当我们使用abs()复数时,该函数返回复数的大小(Python Docs,nd)。例如:
- complexA = 2 + 1j * 3
- complexB = (2 - 1j) * 3
- # Output magnitude of complex numbers
- print("Absolute values of", complexA, "and", complexB, "are:")
- print(abs(complexA), " | ", abs(complexB))
这是Python的输出:
- Absolute values of (2+3j) and (6-3j) are:
- 3.605551275463989 | 6.708203932499369
#非基数10的绝对值
几乎所有时间该abs()函数都使用以10为底的十进制值,abs(-3.14)和abs(234.98)。但是,如果我们使用具有不同底数的值,则函数的结果仍将以10为底。让我们看一下。
#二进制数的绝对值
甲二进制数表示在基座-2数字系统,该系统只使用两个符号的值:“0”和“1”。这些1和0的顺序确定二进制数的实际值。
当我们调用abs()二进制数时,我们得到一个十进制结果。例如:
- positiveBinary = 0b11110
- negativeBinary = -0b11110
- print("Absolute value of 30 and -30 in binary form:")
- print(abs(positiveBinary), " | ", abs(negativeBinary))
print()然后,Python的函数输出一些文本。然后,abs()对那些二进制数字调用该函数。输出的内容如下:
- Absolute value of 30 and -30 in binary form:
- 30 | 30
#科学计数法的绝对价值
用科学计数法,我们有一个十进制数字乘以数字10,该数字升为正或负。这表示非常大或很小的值,而不必写一堆零。
当我们调用该abs()函数与科学记数法的数字,我们得到一个正规浮点值回。例如:
- positiveExp = 3.0e1
- negativeExp = -3.0e1
- print("Absolute value of 30 and -30 in scientific notation:")
- print(abs(negativeExp), " | ", abs(negativeExp))
在这里,我们做两个变量,positiveExp和negativeExp。print()然后,Python的函数宣布其绝对值的输出。我们通过调用abs()这些变量来兑现承诺。
这是小程序的输出:
- Absolute value of 30 and -30 in scientific notation:
- 30.0 | 30.0
#十六进制的绝对值
与常见的十进制数字基数10不同,十六进制数字使用基数16。它用十六个不同的符号表示这些值(通常为“ 0”至“ 9”,“ A”至“ F”)。这也是表示二进制数的一种便捷方式,因为一个十六进制数字可以表示四个二进制数字的排列。
当我们给Pythonabs()函数一个十六进制值时,我们得到一个常规的十进制值作为回报。例如:
- positiveHex = 0x1E
- negativeHex = -0x1E
- print("Absolute value of 30 and -30 in hexadecimal form:")
- print(abs(positiveHex), " | ", abs(negativeHex))
这是我们得到的输出:
- Absolute value of 30 and -30 in hexadecimal form:
- 30 | 30
#八进制数的绝对值
一个八进制数是在底座8的值的八位数字这种格式开始与计数为“0”至“7”。10到17的八进制值用“ 8”到“ 15”表示。
当我们abs()以八进制值调用函数时,我们不会得到八进制值。相反,我们最终得到一个十进制值。这是一个例子:
- positiveOctal = 0o36
- negativeOctal = -0o36
- print("Absolute value of 30 and -30 in octal form:")
- print(abs(positiveOctal), " | ", abs(negativeOctal))
在这里,我们首先做两个变量。它们具有正负八进制值。
然后,我们使用Pythonprint()函数打印一些信息。接下来,我们显示变量的绝对值。我们通过获得这些值abs()。这是输出的样子:
- Absolute value of 30 and -30 in octal form:
- 30 | 30
为了完整起见,让我们看一下abs()函数如何使用两种特殊值:正无穷大和负无穷大以及非数字值(NaN)。
让我们通过这个迷你程序探索这些值:
- # Store some uncommon values in variables
- positiveInf = float("inf")
- negativeInf = float("-inf")
- nanValue = float("nan")
- # Output their absolute values
- print("Absolute values of:")
- print("Positive infinity (+∞):", abs(positiveInf))
- print("Negative infinity (-∞):", abs(negativeInf))
- print("Not a number (NaN):", abs(nanValue))
在此Python脚本,我们首先要三个变量:positiveInf,negativeInf,和nanValue。它们分别具有正无穷大,负无穷大和“非数字”(NaN)值。
然后,我们使用该print()函数输出其绝对值。为了获得这些非负值,我们abs()在每个变量上调用该函数。
从下面的输出中可以看到,这些值保持相同的类型。abs()不会像我们在上面的其他示例中看到的那样改变它们。
- Absolute values of:
- Positive infinity (+∞): inf
- Negative infinity (-∞): inf
- Not a number (NaN): nan
#总结
我们使用Pythonabs()函数获得数字的绝对值。该函数可以返回三种类型的值之一:整数,浮点值或复数的大小。
有趣的是abs(),即使我们没有为其提供以十进制开头的值,它也会返回以10为底的值。因此,当我们以十六进制,二进制或八进制值执行函数时,结果不在基数16、2或8中。结果在基数10中。
这样abs()不仅可以返回绝对值,还可以转换该值。