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()进行判断:
>>>importmath
>>>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()判断:
defstr2float(ss):
ifnotss.isdigit():
raiseValueError
returnfloat(ss)
sss="inf"
a=str2float(sss)
以上内容为大家介绍了python培训之如何表示无穷大,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。
猜你喜欢LIKE
相关推荐HOT
python gensim库是什么?
pythongensim库是什么?gensim库在文本监控里,首先在稳定上,坚如磐石,不用担心稳定性问题,其次,时效性很强,执行能力很快,经常在最重要的...详情>>
2023-11-06 21:48:19python中getattr()是什么?
python中getattr()是什么?本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、getattr()用来获取对象中的属性值;获取对象object的属...详情>>
2023-11-06 21:41:07python标识符如何使用?
python标识符如何使用?为了给编程中函数、类等进行区分,会赋予它们不同的名称。我们把这种命名叫做标识符,也可以理解为符号的标记。当然这种...详情>>
2023-11-06 21:33:55Python IDE之Thonny的介绍
pythonIDE之Thonny的介绍今天要介绍的IDE,可能没用过,甚至可能没听说过。叫Thonny,是塔尔图大学开发的,适合程序员新手。它的界面很容易使用...详情>>
2023-11-06 20:54:19热门推荐
如何使用python中的help函数?
沸如何使用python的callable函数?
热python gensim库是什么?
热python中xluntils库是什么?
新python中getattr()是什么?
python中的win32com库是什么?
python标识符如何使用?
如何使用python中schedule模块?
python中ruamel.yaml模块是什么?
defaultdict在python中计算键值的和
python sleep和wait对比分析
python中字符串转成数字的几种方法
python中SocketServer是什么?
python中如何使用@contextmanage?