起步

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 ValueErrorreturn float(ss)sss = "inf"
a = str2float(sss)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

python中的无穷大相关推荐

  1. Python中的彩蛋

    Python当然能让你上天! 没试过?别担心,我来教你.和Python里的其他东西一样,它非常简单.你只需要敲入下面这行反重力代码 import antigravity 这是啥? 这是个彩蛋.impo ...

  2. 如何在Python中表示一个无限数?

    如何在python中表示无穷大? 无论您在程序中输入哪个数字,任何数字都不得大于此无穷大表示形式. #1楼 另一种较不方便的方法是使用Decimal类: from decimal import Dec ...

  3. Python中五个不常见的隐晦用法小结

    1. 引言 我已经用Python编程5年了(从2017年开始),直到最近才知道以下几个Python中不常见的用法,确实和人们对直观理解有所出入. 闲话少说,我们直接开始吧! 2. 类中的私有变量不是真 ...

  4. python中for无限循环_关于循环:在Python中从1循环到无穷大

    在C语言中,我会这样做: 1 2 3 4int i; for (i = 0;; i++) if (thereIsAReasonToBreak(i)) break; 如何在Python中实现类似的功能? ...

  5. python中for无限循环_循环-在Python中从1循环到无穷大

    循环-在Python中从1循环到无穷大 在C语言中,我会这样做: int i; for (i = 0;; i++) if (thereIsAReasonToBreak(i)) break; 如何在Py ...

  6. python中无穷大与无穷小表示

    float('inf') 表示正无穷 -float('inf') 或 float('-inf') 表示负无穷 其中,inf 均可以写成 Inf 起步 python中整型不用担心溢出,因为python理 ...

  7. 第五章 python中正则表达式的使用

    第一节    正则表达式的一些介绍 1)掌握正则表达式的案例 2)写一个小爬虫 3)正则表达式(或RE)是一个小型的.高度专业化的编程语言,(在python中)它内嵌在python中,并通过re模块实 ...

  8. Python中math模块的使用

    Python中math模块的使用 Python 的 math 模块实现了许多数学运算函数. 这些函数大部分的返回结果是浮点数,在代码中,浮点数小数点后面的位数是有限的,而二进制表示小数时很有可能会出现 ...

  9. [转载] python 中numpy快速去除nan, inf的方法

    参考链接: Python中的numpy.isinf 参考文献Python快速转换numpy数组中Nan和Inf的方法 在使用numpy数组的过程中时常会出现nan或者inf的元素,可能会造成数值计算时 ...

最新文章

  1. 干货 | 龙瀛:面向智慧城市的人本尺度城市形态:理论、方法与实践
  2. 冬季生存法则,不得不看!
  3. 数据结构 -- 二叉树
  4. 数据结构_串_mindmap+LeetCode_344.反转字符串(Java、C)
  5. java getclass 相等_Java判断2个List集合是否相等(不考虑元素的顺序)
  6. 为什么学习C语言这么久,看的懂代码,做不出题,写不出来项目?
  7. hdu 4747 mex 线段树+思维
  8. mysql cluster linux_【完美】Mysql-cluster数据库集群搭建(linux)
  9. (转)MyBatis框架的学习(七)——MyBatis逆向工程自动生成代码
  10. ADI芯片的通用SPI接口设计
  11. 布袋除尘器过滤风速多少_布袋除尘器过滤风速的确定及启动与停机的讲解
  12. 学子商城项目用springboot后端框架搭建(IDEA)
  13. 平面设计(板式设计与构图篇)
  14. 软件逆向工具常用快捷键
  15. 通过BIOS设置启用CPU虚拟化解决VMware虚拟机不支持X86_64位linux操作系统安装问题
  16. 2022 区块链(GameFi)游戏行业研究报告
  17. QT虚拟键盘中英文切换
  18. 卫龙更新招股书:上半年净利润同比下降,产能未饱和仍要募资扩产
  19. pip install 后面加个点是什么意思?
  20. 面试题2021.7.5-mysql

热门文章

  1. 03 - OAI接入网搭建过程 - 研0
  2. java基本知识面试题大全收集
  3. 循环冗余码--初识与计算
  4. 柏睿数据java_数据库动态查询最佳实现 陈氏查询
  5. 台达-canopen操作
  6. Android常用三方框架
  7. 客户满意度测评模型-「客户满意度指数模型」
  8. 重载测试打印 - GoogleTest()
  9. 伦敦大学学院计算机硕士专业介绍,2020年伦敦大学学院计算机科学专业硕士申请条件-学费-世界排名...
  10. 微信小程序富文本中图片溢出,使用max-width无效