当我们使用Python的abs()function时,我们经常使用整数和浮点值。但是abs()具有一个鲜为人知的功能:它也可以使用不常见的值。让我们来看看。
在这篇文章中:
获取不常见的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和complexB变量中。然后我们将它们与print()功能一起输出。代码段的最后一行调用abs()这些复数上的函数。
这是Python的输出:
#非基数10的绝对值
几乎所有时间该abs()函数都使用以10为底的十进制值,abs(-3.14)和abs(234.98)。但是,如果我们使用具有不同底数的值,则函数的结果仍将以10为底。让我们看一下。
#二进制数的绝对值
甲二进制数表示在基座-2数字系统,该系统只使用两个符号的值:“0”和“1”。这些1和0的顺序确定二进制数的实际值。
当我们调用abs()二进制数时,我们得到一个十进制结果。例如:
此代码产生两个变量,positiveBinary和negativeBinary。这些是以二进制格式表示的正值和负值。
print()然后,Python的函数输出一些文本。然后,abs()对那些二进制数字调用该函数。输出的内容如下:
这表明abs()即使不输入基数也返回以10为底的值。(由于print()输出数字的方式而不会发生这种情况。当我们将abs()立即返回的值转换为字符串时,该字符串值已经是一个十进制数字。)
#科学计数法的绝对价值
用科学计数法,我们有一个十进制数字乘以数字10,该数字升为正或负。这表示非常大或很小的值,而不必写一堆零。
当我们调用该abs()函数与科学记数法的数字,我们得到一个正规浮点值回。例如:
在这里,我们做两个变量,positiveExp和negativeExp。print()然后,Python的函数宣布其绝对值的输出。我们通过调用abs()这些变量来兑现承诺。
这是小程序的输出:
#十六进制的绝对值
与常见的十进制数字基数10不同,十六进制数字使用基数16。它用十六个不同的符号表示这些值(通常为“ 0”至“ 9”,“ A”至“ F”)。这也是表示二进制数的一种便捷方式,因为一个十六进制数字可以表示四个二进制数字的排列。
当我们给Pythonabs()函数一个十六进制值时,我们得到一个常规的十进制值作为回报。例如:
这个小程序首先生成两个十六进制变量,positiveHex和negativeHex。print()然后该函数进行一些输出。然后,abs()对这些十六进制值调用该函数。
这是我们得到的输出:
#八进制数的绝对值
一个八进制数是在底座8的值的八位数字这种格式开始与计数为“0”至“7”。10到17的八进制值用“ 8”到“ 15”表示。
当我们abs()以八进制值调用函数时,我们不会得到八进制值。相反,我们最终得到一个十进制值。这是一个例子:
在这里,我们首先做两个变量。它们具有正负八进制值。
然后,我们使用Pythonprint()函数打印一些信息。接下来,我们显示变量的绝对值。我们通过获得这些值abs()。这是输出的样子:
# Python的无穷大和NaN的绝对值
为了完整起见,让我们看一下abs()函数如何使用两种特殊值:正无穷大和负无穷大以及非数字值(NaN)。
让我们通过这个迷你程序探索这些值:
在此Python脚本,我们首先要三个变量:positiveInf,negativeInf,和nanValue。它们分别具有正无穷大,负无穷大和“非数字”(NaN)值。
然后,我们使用该print()函数输出其绝对值。为了获得这些非负值,我们abs()在每个变量上调用该函数。
从下面的输出中可以看到,这些值保持相同的类型。abs()不会像我们在上面的其他示例中看到的那样改变它们。
我们不能将abs()函数与None值一起使用。当我们这样做时,Python会生成一条TypeError错误消息(“ abs()的错误操作数类型”)。
#总结
我们使用Pythonabs()函数获得数字的绝对值。该函数可以返回三种类型的值之一:整数,浮点值或复数的大小。
有趣的是abs(),即使我们没有为其提供以十进制开头的值,它也会返回以10为底的值。因此,当我们以十六进制,二进制或八进制值执行函数时,结果不在基数16、2或8中。结果在基数10中。
这样abs()不仅可以返回绝对值,还可以转换该值。