之前只知道设置变量的初始值为0。今天在写网络路径分析的时候,为了找到离任意坐标距离最近的节点,初始设置最短距离为无穷大,然后不断的去替换,直到找到最近的节点。

刚开始设置是min_dis = 999999999999,作为距离不是特别大的也是可以的,于是试想是不是Python提供了有无穷大的表示方法,查阅文档,果然如此:

from random importrandrange

seq= [randrange(10**10) for i in range(100)]

dd= float("inf")for x inseq:for y inseq:if x == y: continued= abs(x-y)if d

xx, yy, dd=x, y, dprint (xx,yy)

上述代码的目的是:从100个随机数里面找2个最靠近的自然数(不相等):

注意到其中的dd初始值:

dd = float("inf")

此处需要保证dd初始足够大,可以判断dd表示的是一个很大的值,经查验,dd表示的即为无穷大,见文档:

float also accepts the strings “nan” and “inf” with an optional prefix “+” or “-” for Not a Number (NaN) and positive or negative infinity.

那么负无穷的表示呢?

>>> float('-Inf')==-float('Inf')

true

以下内容转自:http://blog.sina.com.cn/s/blog_a9303fd90101d3tx.html

---------------------------------------------------------------

infinite(无穷大)数

显然,这是与finite数相对的。在无穷大数里值是固定的,分为+∞(正无穷大)和-∞(负无穷大)。exponent和significand的值如下所示。

类型

exponent

significand

单精度

FF

0

2128

双精度

7FF

0

21024

扩展双精度

7FFF

0x80000000_00000000

216384

对于扩展双精度来说,由于它的J位是显式的,必须为1值(否则是unsupported类型),因此significand的值为0x80000000_00000000。

NaN(not a number)数

如果一个数超出infinite,那就是一个NaN(not a number)数。在NaN数中,它的exponent部分为可表达的最大值,即FF(单精度)、7FF(双精度)和7FFF(扩展双精度)。

NaN数与infinite数的区别是:infinite数的significand部分为0值(扩展双精度的bit63位为1)。而NaN数的significand部分不为0值。

NaN数包括下列两类。

① SNaN(Signaling NaN)数:SNaN数表示是一种比较严重的错误值。

② QNaN(Quiet NaN)数:在一般情况下,QNaN数是可接受的。

SNaN和QNaN数的编码区别在于significand部分的不同,如下所示。

NaN类型

significand

备注

SNaN

1.0XXX…XXX

XXX不为0

QNaN

1.1…

1.1 后面任意值

SNaN数的significand以1.0开头(并且1.0后面的位不为0值),而QNaN数的significand是1.1开头。

x87 FPU或SSE指令遇到SNaN数时会产生#IA异常,而遇到QNaN时不产生#IA异常(部分指令除外)。

那么既然NAN不是一个真实的数值,在程序如何判断变量是否变成了NAN呢?大部分语言中针对NAN值都有一系列的函数定义,C语言中最常见的函数如下:

_isnan(double x); //判断是否为NAN

_finite(double x); //判读是否为无穷大

python 设置 初始值_Python初始值表示为无穷大相关推荐

  1. python设置文件权限_PYTHON学习之文件操作;

    PYTHON学习之文件操作: 文件内容替换 for line in flielinput.input("filepath",inplace=1): line = line.repa ...

  2. python设置环境变量_Python设置环境变量

    python设置环境变量 We can set an environment variable in Python using os module. Python os module environ ...

  3. python 设置x轴_python matplotlib坐标轴设置的方法

    在使用matplotlib模块时画坐标图时,往往需要对坐标轴设置很多参数,这些参数包括横纵坐标轴范围.坐标轴刻度大小.坐标轴名称等 在matplotlib中包含了很多函数,用来对这些参数进行设置. 我 ...

  4. python表示差值_python差值函数

    python可否用自定义函数对数据进行插值 除了interp函数自带的插值方式,可否用一个自定义的函数表达式对interp直接定义a=True/False就行,示例代码: #定义布尔值类型参数a,b, ...

  5. python利用以下公式求π的值_Python 计算 π 值的简单示例

    这篇文章主要为大家详细介绍了Python 计算 π 值的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! π是一 ...

  6. python设置ini文件中的值_PyCharm设置python文件模板,自动读取文件信息。

    #!/usr/bin/env python # -*- coding:utf-8 -*- '''================================================= @P ...

  7. python设置ini文件中的值_5分钟掌握Python中常见的配置文件

    为什么要写配置文件 在开发过程中,我们常常会用到一些固定参数或者是常量.对于这些较为固定且常用到的部分,往往会将其写到一个固定文件中,避免在不同的模块代码中重复出现从而保持核心代码整洁. 这个固定文件 ...

  8. 怎样用python计算π的值_Python 计算 π 值的简单示例

    对python这个高级语言感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! π是一个无数人追随的真正的神奇数字.我不是很清楚一个永远重复的无理数的迷人之处.在我看来,我乐于计 ...

  9. python 空字符串的布尔值_python布尔值

    ## Python布尔值 ***** 布尔值表示两个值之一:`True`或`False`. 在编程中,您通常需要知道表达式是否为`True`或`False`.您可以在Python中求值任何表达式,并获 ...

最新文章

  1. Ubuntu上使终端显示Git分支(oh-my-zsh)
  2. JDK源码解析 Runable是一个典型命令模式,Runnable担当命令的角色,Thread充当的是调用者,start方法就是其执行方法
  3. Oracle之索引、权限
  4. Spring Boot 2.X 使用@Cacheable时注意事项
  5. Windows远程桌面的使用(Remote Desktop Connection)
  6. 路由控制器Express的路由控制方法
  7. java 转码%2f%_JS和JAVA中常用的编码转码函数
  8. 自动补足算法是什么_如何自定义Shell(Fish版)的自动补全规则?
  9. access数据库应用系统客观题_随访数据库的建立:易侕DataWeb系统应用
  10. 如果/否则列表理解?
  11. SpringMVC的json数据交互
  12. 51nod 1050 循环数组最大子段和 单调队列优化DP
  13. 信号与系统之系统的时域分析
  14. Touch Panel 调试技巧 01
  15. php股票预警,很准的股票底部预警选股指标 通达信公式(附图)
  16. linux 流式传输,Steam家用流式传输设置教程 Steam家用流式传输怎么用
  17. 二元函数偏导数公式_二阶偏导数公式详解
  18. CannotGetJdbcConnectionException:Failed to obtain JDBC Connection
  19. OptionError: ‘Pattern matched multiple keys‘
  20. 虚拟机去虚拟化教程,过游戏检测,不全你打我

热门文章

  1. 首个测试博客搜索引擎等你来体验!
  2. 关于不能成为专业软件测试人员的10大理由的一些阐述
  3. 深入剖析Vue源码 - 响应式系统构建(上)
  4. fishhook源码学习
  5. springboot+kafka(ip地址瞎写的)
  6. hadoop1.x 与hadoop2.x 架构变化分析
  7. hadoop磁盘空间不均衡的解决办法
  8. 安装 Dubbo 管 理 控 制(二)
  9. 这次,让我们捋清:同步、异步、阻塞、非阻塞
  10. 可视化与遗留系统的微服务改造