Python里面有个inf是干啥的
Posted 但老师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python里面有个inf是干啥的相关的知识,希望对你有一定的参考价值。
文章目录
背景
我们偶尔会在别人代码里面看到Python
里面有个inf
,这是干啥的呢.
inf
代表infinite
,表示无限,亦即我们高中学过的无穷.
inf
分为正无穷inf
或+inf
和负无穷-inf
Python
中的表示方法是float('inf')
和float('-inf')
环境
Python
3.8
测试
把常规的运算和比较都测试一遍+ - * / % // > == < !=
,结果我就直接汇总了
符号 | 数字 | inf | -inf |
---|---|---|---|
+ | 1 | inf | -inf |
0 | inf | -inf | |
- | 1 | inf | -inf |
* | 1 | inf | -inf |
0 | nan | nan | |
-1 | -inf | inf | |
/ | 1 | inf | -inf |
0 | ZeroDivisionError | ZeroDivisionError | |
-1 | -inf | inf | |
/ | 1/ | 0.0 | -0.0 |
0/ | 0.0 | 0.0 | |
-1/ | -0.0 | 0.0 | |
% | 1 | nan | nan |
0 | ZeroDivisionError | ZeroDivisionError | |
-1 | nan | nan | |
% | 1% | 1.0 | -inf |
0% | 0.0 | -0.0 | |
-1% | inf | -1.0 | |
// | 1 | nan | nan |
0 | ZeroDivisionError | ZeroDivisionError | |
-1 | nan | nan | |
// | 1// | 0.0 | -1.0 |
0// | 0.0 | -0.0 | |
-1// | -1.0 | 0.0 | |
> | 0 | True | False |
== | 0 | False | False |
< | 0 | False | True |
!= | 0 | True | True |
除了*0
,%1
,%-1
,//1
,//-1
为nan
,其他的基本符合预期
应用
这种极限值,一般会在什么时候用到呢
举个例子,求极值,也就是最大值,最小值的时候.用inf
比取随机值作为初始值可要优雅而准确得多
假设有列表如下
num = [5,2,7,9,1,6,9]
我们需要求其中的最大值,常规做法如下
maxnum = num[0]
for n in num:
if n > maxnum:
maxnum = n
但是现在我们可以这么做
maxnum = float('-inf')
for n in num:
if n > maxnum:
maxnum = n
感觉真的是优雅好多.
求最小值初始值用float('inf')
就好,一样的遍历思路
以上是关于Python里面有个inf是干啥的的主要内容,如果未能解决你的问题,请参考以下文章