知行编程网知行编程网  2022-08-16 09:00 知行编程网 隐藏边栏  33 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python如何表示无穷大的相关知识,包括python怎么输入无穷大,以及python中range范围无穷大这些编程知识,希望对大家有参考作用。

python如何表示无穷大

float('inf') 表示正无穷

-float('inf') 或 float('-inf') 表示负无穷

其中,inf 均可以写成 Inf

起步

python中整数溢出不用担心,因为python理论上可以表示大整数,直到内存被挤出为止。编程中经常需要无穷大。例如,从一组数字中过滤掉最小的数字。一般会使用一个临时变量来存储最终结果,对变量进行一一比较,不断更新。而这个临时变量一般需要初始化为无穷大或第一个元素的值。

正无穷大与负无穷大

python 中没有特殊的语法来表示这些值,但可以使用 float() 创建它们:

>>> a = float("inf")
>>> b = float("-inf")
>>> a
inf
>>> b
-inf

为了测试这些值的存在,使用 math.isinf() 进行判断:

>>> import math
>>> math.isinf(a)
True
>>> math.isinf(b)
True

推荐学习《

无穷大数在执行数学计算的时候会传播

这类似于数学中描述的内容。无穷大加上一个常数仍然是无穷大,无穷大等于无穷大:

>>> a = float('inf')
>>> a + 45
inf
>>> a * 10
inf
>>> 10 / a
0.0
>>> float("inf") == float("inf")
True

无穷大在比较中比任何一个数都要大。

正无穷与负无穷相加的结果是什么

有些操作时未定义的并会返回一个 NaN 结果:

>>> a = float('inf')
>>> a/a
nan
>>> b = float('-inf')
>>> a + b
nan

表示非数字的 NaN

nan 值在所有操作中也会传播,并且不会产生异常:

>>> c = float('nan')
>>> c + 23
nan
>>> c / 2
nan
>>> c * 2
nan
>>> math.sqrt(c)
nan

使用 math.isnan() 可以判断值是否是 NaN:

>>> math.isnan(c)
True

nan 值的任何比较操作都是返回 False :

>>> float("nan") == float("nan")
False
>>> c > 3
False

更安全的类型转换

由于无穷大的存在,字符串加载浮点数会出现一些异常,这个转换过程不会抛出异常。如果程序员想要更改 python 的默认行为,他们可以使用 fpectl 模块,但它在标准 Python 构建中未启用,它依赖于平台,并且针对专家程序员。这里是一个比较简单的转换,就是加一个isdigit()判断:

def str2float(ss):
    if not ss.isdigit():
        raise ValueError
    return float(ss)
 
sss = "inf"
a = str2float(sss)

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享