python培训之如何表示无穷大

发布时间:2022-08-05 09:47:50 人气:168 作者:多测师

  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

python培训之如何表示无穷大

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

  这个就类似于数学中讲述的,无穷大加上一个常数还是无穷大,无穷大与无穷大相等:

  >>> 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)

  以上内容为大家介绍了python培训之如何表示无穷大,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线