文章目录

  • 背景
  • 环境
  • 测试
  • 应用

背景

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

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

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

环境

  • Python3.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,//-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')就好,一样的遍历思路

- 完 -

Python里面有个inf是干啥的相关推荐

  1. Python实现《明日方舟》干员寻访模拟器第二期:间接学习变化序列抽取目标事件和序列精确索引内容的经验

    上一期的文章我们实现了<明日方舟>干员寻访模拟器单次抽奖的功能,了解了random.choice这个函数的特点,通过原始奖池机制把等可能转化为不等可能,上一期我们还编写了一个便捷的不等可能 ...

  2. python调参工作都是干啥的_xgboost原理及调参方法-通俗易懂版本

    xgboost是各种比赛中最常使用的方法,网上介绍非常多,但是大部分看起来都比较费劲,这篇文章我将通俗的讲一下xgboost是在干什么,是怎么实现的,每一步的细节中要注意什么问题,达到理解-应用的程度 ...

  3. Python实现《明日方舟》干员寻访模拟器第三期:原始但实用的卡池机制,不过要小心!

    上一期文章我们实现了比较完善的单次抽奖函数,成功地在默认卡池中抽取单个结果,并且解决了一个微小但致命的问题,今天我们着手进行<明日方舟>干员寻访模拟器的实现,如果您忘记了上一期的内容,或者 ...

  4. python调参工作都是干啥的_Python中Gradient Boosting Machine(GBM)调参方法详解

    1.前言 如果一直以来你只把GBM当作黑匣子,只知调用却不明就里,是时候来打开这个黑匣子一探究竟了! 这篇文章是受Owen Zhang (DataRobot的首席产品官,在Kaggle比赛中位列第三) ...

  5. python中的成员运算符是干嘛的_在Python中使用成员运算符的示例

    下表列出了所有Python语言支持的成员运算符. 例如: 试试下面的例子就明白了所有的Python编程语言提供会员运算符: #!/usr/bin/python a = 10 b = 20 list = ...

  6. python中scrapy的middleware是干嘛的_Python之爬虫(十九) Scrapy框架中Download Middleware用法...

    这篇文章中写了常用的下载中间件的用法和例子. Downloader Middleware处理的过程主要在调度器发送requests请求的时候以及网页将response结果返回给spiders的时候,所 ...

  7. python年份天干地支代码_Python------天干地支纪年及星座计算

    干支是天干,地支的合称,干和支组合后用于纪年. 就是将十天干和十二地支按顺序搭配组合成干支,用于纪年. 把干支顺序相配正好六十为一周,周而复始,循环记录,永无止尽. 十大天干:甲 乙 丙 丁 戊 己 ...

  8. python调参工作都是干啥的_知乎 | 计算机视觉工程师一天都大致在做些什么?

    点击上方"机器学习与生成对抗网络",关注"星标" 获取有趣.好玩的前沿干货! from知乎,3d视觉工坊编辑:著作权归作者,侵删 观点一 作者|张旭 https ...

  9. python中itertools groupby函数是干嘛的_Python-如何使用itertools.groupby()?

    小编典典 重要说明:你必须先对数据进行排序. 我没有得到的部分是在示例构造中 groups = [] uniquekeys = [] for k, g in groupby(data, keyfunc ...

  10. python中scrapy的middleware是干嘛的_python爬虫常用之Scrapy 中间件

    一.概述 1.中间件的作用 在scrapy运行的整个过程中,对scrapy框架运行的某些步骤做一些适配自己项目的动作. 例如scrapy内置的HttpErrorMiddleware,可以在http请求 ...

最新文章

  1. 【直播】杨剑砺:数据可视化漫谈
  2. js老生常谈之this,constructor ,prototype
  3. 为了金秋那沉甸甸的麦穗,我绝不辜负春天
  4. 为什么要重写hashcode方法和equals方法
  5. 想做开源软件开发谁能带一下呀
  6. azure云数据库_Azure SQL数据库中的高级数据安全性–数据发现和分类
  7. linux下tomcat启动后出现多个java进程
  8. 2017程序员综合素质调研测试
  9. python mro算法_Python MRO C3算法实现
  10. Autojs实现图片转字符串(简易ocr预备步骤)
  11. en开头的单词_英语四级en-词汇前后缀解析
  12. css 设置文本字体间距及首行缩进
  13. MySQL数据库的查询语句的应用
  14. 求教吉他继续提高的方法
  15. 产品经理的5分钟统计课:产品/用户/数据平均情况是怎样?
  16. KSO - sqlserver事务实现
  17. 【PHP】php 递归、效率和分析
  18. Spring Boot 异常错误处理
  19. 基于MATLAB的手写体数字识别算法的实现
  20. mysql ora01031_as sysdba 出现ORA-01031: insufficient privileges 解决办法

热门文章

  1. Easyx-----c语言实现图形化打砖块
  2. ATTCK实战系列(二)琢磨篇
  3. QScrollArea的简单使用
  4. Kotlin 初体验
  5. linux 查看wav文件内容,Linux 播放wav文件
  6. i微信编辑器服务器,i排版微信编辑器
  7. 为什么计算机专业的学生要学习使用 Linux 系统?
  8. 计算机网络实验-网络嗅探器
  9. 漏洞复现——Chrome 浏览器的 0day 远程代码执行漏洞 (附poc)
  10. c语言函数大全 chm,c语言常用函数手册 chm格式.doc