Python里面有个inf是干啥的

背景

我们偶尔会在别人代码里面看到Python里面有个inf,这是干啥的呢.

inf代表infinite,表示无限,亦即我们高中学过的无穷.

inf分为正无穷inf+inf和负无穷-inf
Python中的表示方法是float('inf')float('-inf')

环境

  • Python3.8

测试

把常规的运算和比较都测试一遍+ - * / % // > == < !=,结果我就直接汇总了

符号数字inf-inf
+1inf-inf
0inf-inf
-1inf-inf
*1inf-inf
0nannan
-1-infinf
/1inf-inf
0ZeroDivisionErrorZeroDivisionError
-1-infinf
/1/0.0-0.0
0/0.00.0
-1/-0.00.0
%1nannan
0ZeroDivisionErrorZeroDivisionError
-1nannan
%1%1.0-inf
0%0.0-0.0
-1%inf-1.0
//1nannan
0ZeroDivisionErrorZeroDivisionError
-1nannan
//1//0.0-1.0
0//0.0-0.0
-1//-1.00.0
>0TrueFalse
==0FalseFalse
<0FalseTrue
!=0TrueTrue

除了*0,%1,%-1,//1,//-1nan,其他的基本符合预期

应用

这种极限值,一般会在什么时候用到呢
举个例子,求极值,也就是最大值,最小值的时候.用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')就好,一样的遍历思路

- 完 -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

但老师

要是看起来爽 求打赏一耳光

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值