Python中的inf与nan
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
相关推荐HOT
更多>>python怎么安装idle
开始->程序->Python2.*/3.*->IDLE(PythonGUI)如此就打开了PythonShell->File->Newwindow(Ctrl+N)就出现了python编辑器编写代码比如p...详情>>
2023-11-09 21:11:47python工具包如何安装
python安装工具包的方式总结一下:1.、在spyder中安装:打开命令窗口:选择Tools下的“opencommandprompt”,输入:pipinstall安装包名字==版本...详情>>
2023-11-09 20:39:21Python写完代码怎么用
python运行有两种方式,一种是在python交互式命令行下运行;另一种是使用文本编辑器,在命令行中直接运行。一、命令行与交互式命令行首先要搞清...详情>>
2023-11-09 16:31:06Python怎么运行shell脚本
Python作为一门脚本语言,有时候需要与shell命令交互式使用,在Python中提供了很多的方法可以调用并执行shell脚本,本文介绍几个简单的方法。一...详情>>
2023-11-09 16:10:05