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. Java笔记(一)
  2. linux shell mysql 数据库主从同步状态检查告警
  3. Hibernate个人学习笔记(2)
  4. iOS 推荐学习__bridge等ARC知识的好资料
  5. [转]VGA、QVGA、CIF、QCIF 。。。的含义
  6. Eclipse Egit 安装
  7. asp.net中分页与存储过程的一些总结
  8. java数据结构和算法------顺序查找
  9. Jquery的.post说解
  10. Angle
  11. Count属性(行数 @)
  12. 使用windows live writer 编辑博客日志
  13. 创建一个支持异步操作的operation
  14. document.body 和 document.documentElement 的区别
  15. UWP 分享用那个图标
  16. ECharts 环形饼图 动态获取json数据
  17. 【游戏开发】基于VS2017的OpenGL开发环境搭建
  18. 查看百度CUID方法
  19. Java中final、finally、finalize有什么区别?
  20. 关于C#报空Object is null 错误的看法

热门文章

  1. 自定义custom Tab Bar
  2. [USACO2012 OPEN] Bookshelf
  3. 【转】java对象——new对象的理解
  4. 数据库备份脚本.sh
  5. 6-9 Haar+adaboost人脸识别
  6. Jmeter学习之While Controller
  7. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时7
  8. 51单片机 HC05蓝牙模块
  9. bzoj 2946: [Poi2000]公共串【SAM】
  10. 聊聊Java并发面试问题之公平锁与非公平锁是啥?