千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:郑州千锋IT培训  >  技术干货  >  Python中的inf与nan

Python中的inf与nan

来源:千锋教育
发布人:xqq
时间: 2023-11-09 05:42:04

python中可以用如下方式表示正负无穷

>>>float('inf')#正无穷,inf不区分大小写,float('InF')一样可以。

inf

>>>float('-inf')#负无穷,不区分大小写。

-inf

当涉及>和<运算时,所有数都比-inf大,所有数都比+inf小。

>>>float('nan')

nan

nan代表NotANumber(不是一个数),它并不等于0,因为nan不是一个数,所以相关计算都无法得到数字。

正无穷float('inf')

>>>float('inf')+100

inf

>>>float('inf')-100

inf

>>>float('inf')*100

inf

>>>float('inf')/100

inf

>>>float('inf')+float('inf')

inf

>>>float('inf')-float('inf')

nan

>>>float('inf')*float('inf')

inf

>>>float('inf')/float('inf')

nan

>>>100+float('inf')

inf

>>>100-float('inf')

-inf

>>>100*float('inf')

inf

>>>100/float('inf')

0.0

负无穷float('inf')

>>>float('-inf')+100

-inf

>>>float('-inf')-100

-inf

>>>float('-inf')*100

-inf

>>>float('-inf')/100

-inf

>>>float('-inf')+float('-inf')

-inf

>>>float('-inf')-float('-inf')

nan

>>>float('-inf')*float('-inf')

inf

>>>float('-inf')/float('-inf')

nan

>>>100+float('-inf')

-inf

>>>100-float('-inf')

inf

>>>100*float('-inf')

-inf

>>>100/float('-inf')

-0.0

可见,正无穷float('inf')与负无穷float('inf')运算有着异曲同工之妙。

正无穷float('inf')与负无穷float('inf')之间的运算:

>>>float('inf')+float('-inf')

nan

>>>float('inf')-float('-inf')

inf

>>>float('-inf')-float('inf')

-inf

>>>float('inf')*float('-inf')

-inf

>>>float('inf')/float('-inf')

nan

>>>float('-inf')/float('inf')

nan

NaN

所有涉及nan的操作,返回的都是nan。

>>>float('nan')+100

nan

>>>float('nan')-100

nan

>>>float('nan')*100

nan

>>>float('nan')/100

nan

比较操作时,返回的都是False,哪怕两个float('nan')互相比较都不相等。

>>>float('nan')>float('inf')

False

>>>float('nan')>float('-inf')

False

>>>float('nan')

False

>>>float('nan')

False

>>>float('nan')==float('nan')#注意

False

Python中可以用math.isinf()与math.isnan()来判断数据是否为inf或nan。

>>>importmath

>>>math.isinf(float('inf'))

True

>>>math.isinf(float('-inf'))

True

>>>math.isnan(float('nan'))

True

除此之外,还有别的方法可以用来判断数据是否为inf和nan,但上述方法是最推荐的,所以其他方法不再赘述。

正负无穷与NaN的is和==判断

>>>inf=float("inf")

>>>ninf=float("-inf")

>>>nan=float("nan")

>>>infisinf

True

>>>ninfisninf

True

>>>nanisnan

True

>>>inf==inf

True

>>>ninf==ninf

True

>>>nan==nan

False

>>>infisfloat("inf")

False

>>>ninfisfloat("-inf")

False

>>>nanisfloat("nan")

False

>>>inf==float("inf")

True

>>>ninf==float("-inf")

True

>>>nan==float("nan")

False

首先,对于正负无穷和NaN自身与自身用is操作,结果都是True,这里好像没有什么问题;但是如果用==操作,结果却不一样了,NaN这时变成了False。如果分别用float重新定义一个变量来与它们再用is和==比较,结果仍然出人意料。出现这种情况的原因稍稍有些复杂,这里就不赘术了,感兴趣可以查阅相关资料。

既然我在谈论这个问题,就再忠告:不要在Python中试图用is和==来判断一个对象是否是正负无穷或者NaN。乖乖的用math模块就OK了,否则就是引火烧身。

以上内容为大家介绍了Python中的inf与nan,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

python如何实例化一个对象

2023-11-09

pythonspyder怎么切换Python版本

2023-11-09

python如何查看python安装包

2023-11-09

最新文章NEW

python到底是什么样的语言

2023-11-09

python如何显示当前路径

2023-11-09

python如何生成文件夹

2023-11-09

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>