python如何取0到无穷大_python如何表示无穷大-程序员宅基地

技术标签: python如何取0到无穷大  

float('inf') 表示正无穷

-float('inf') 或 float('-inf') 表示负无穷

其中,inf 均可以写成 Inf

起步

python中整型不用担心溢出,因为python理论上可以表示无限大的整数,直到把内存挤爆。而无穷大在编程中常常需要的。比如,从一组数字中筛选出最小的数字。一般使用一个临时变量用于存储最后结果,变量去逐个比较和不断地更新。而这临时变量一般要初始无穷大或者去第一个元素的值。

正无穷大与负无穷大

python中并没有特殊的语法来表示这些值,但是可以通过 float() 来创建它们:>>> a = float("inf")

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

>>> a

inf

>>> b

-inf

为了测试这些值的存在,使用 math.isinf() 进行判断:>>> import math

>>> math.isinf(a)

True

>>> math.isinf(b)

True

推荐学习《python教程》

无穷大数在执行数学计算的时候会传播

这个就类似于数学中讲述的,无穷大加上一个常数还是无穷大,无穷大与无穷大相等:>>> a = float('inf')

>>> a + 45

inf

>>> a * 10

inf

>>> 10 / a

0.0

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

True

无穷大在比较中比任何一个数都要大。

正无穷与负无穷相加的结果是什么

有些操作时未定义的并会返回一个 NaN 结果:>>> a = float('inf')

>>> a/a

nan

>>> b = float('-inf')

>>> a + b

nan

表示非数字的 NaN

nan 值在所有操作中也会传播,并且不会产生异常:>>> c = float('nan')

>>> c + 23

nan

>>> c / 2

nan

>>> c * 2

nan

>>> math.sqrt(c)

nan

使用 math.isnan() 可以判断值是否是 NaN:>>> math.isnan(c)

True

nan 值的任何比较操作都是返回 False :>>> float("nan") == float("nan")

False

>>> c > 3

False

更安全的类型转换

由于无穷的存在,因此字符串装浮点数就存在的一些例外,并且这个转换过程不会抛出异常。如果程序员们想改变 python 的默认行为,可以使用 fpectl 模块,但是它在标准的Python 构建中并没有被启用,它是平台相关的,并且针对的是专家级程序员。这里提供一个比较简单的转换,就是加一个 isdigit() 判断:def str2float(ss):

if not ss.isdigit():

raise ValueError

return float(ss)

sss = "inf"

a = str2float(sss)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39731922/article/details/111003386

智能推荐

jquery实现截取pc图片_jquery 图片截取工具jquery.imagecropper.js-程序员宅基地

文章浏览阅读341次。除了jquery,本插件还引用了UI库,包括ui.draggable.jsImageCropper 演示需要asp.net支持。测试通过ImageCropper 下载 https://www.jb51.net/jiaoben/25688.html插件用法:var imageCropper = $('#imgBackground').imageCropper();要注意的是此插件只应用在有src属性..._jquery image crop shield

ucl介绍_交换机的ucl是什么东西-程序员宅基地

文章浏览阅读1.4k次。目录1、概述2、global configuration3、update command list3.1、UCL的格式:3.2、host commands3.3、firmware commands3.4、条件执行3.5、使用变量1、概述UCL是Update Command List的简称。从《mfgtools工作流程概述》这个文章中知道对目标单板的具体烧写过..._交换机的ucl是什么东西

idea html设置字体大小,intellij idea设置(字体大小、背景)-程序员宅基地

文章浏览阅读1.8k次。1. 配置信息说明Intellij Idea: 2017.2.52.具体设置<1> 设置主题背景、字体大小File---->Settings----->Appearance & Behavior------>Appearance,主题背景:Theme: Darcula,Intellij,Windows主题字体大小:Override default fonts ..._idea的html标签字体大小

【目标检测】RCNN算法详解_rcnn算法思想-程序员宅基地

文章浏览阅读2.3k次。reference link:https://blog.csdn.net/u011534057/article/details/51218250一、相关理论&amp;nbsp; &amp;nbsp;本篇博文主要讲解2014年CVPR上的经典paper:《Rich feature hierarchies&amp;nbsp;for&amp;nbsp;Accurate Object Detection and Segmentat..._rcnn算法思想

金陵科技学院专转本计算机书,2021金陵科技学院五年一贯制专转本计算机科学与技术考试大纲(最新)...-程序员宅基地

文章浏览阅读766次。2021年金陵科技学院五年一贯制专转本计算机科学与技术专业考试内容包括《计算机网络基础》和《计算机应用基础》两部分,具体考试大纲如下《计算机网络基础》考试大纲一、参考书目:《计算机网络技术与应用(第2版)》,段标、张玲主编,电子工业出版社.二、考试形式:闭卷,考试时间90分钟三、考试内容和要求(一)考试要求1.计算机网络理论知识● 掌握计算机网络的定义、计算机网络的组成、功能与应用● 掌握计算机网..._计算机科学与技术转本那两本专业书

ShellExecute失败,返回ERROR_NO_ASSOCIATION(1155)的处理方案_shellexecute 1155-程序员宅基地

文章浏览阅读2.6k次,点赞2次,收藏2次。DWORD TryShellWithParam(CString strParam){ DWORD dwErrorOld = GetLastError(), dwErrorNew = ERROR_SUCCESS; if (ERROR_SUCCESS != dwErrorOld) { if (ERROR_NO_ASSOCIATION == dwErrorOld) { ShellExe..._shellexecute 1155

随便推点

华为鸿蒙osbeta用户体验,华为Mate40鸿蒙OS手机Beta版-程序员宅基地

文章浏览阅读184次。华为Mate40鸿蒙OS手机Beta版现在华为手机系统最新升级的一个版本,相信很多用户这几天已经尝试到了最新的系统操作,感受非常的智能和特别和以往的各种系统来说,更加具有智能性,而且操作起来也更加的流畅,在很多小细节方面上也进行了优化,处处都充满了惊喜,让整个华为手机操作起来,更加具有娱乐性。华为Mate40鸿蒙OS手机Beta版特色:1、华为全新推出的一个专属系统,会与人们常用的安卓系统存在很大..._华为 mate40 退出系统beta

kafka分区及副本在broker的分配_topic 分区分配 brokearray-程序员宅基地

文章浏览阅读2.1k次。转自:https://blog.csdn.net/jediael_lu/article/details/77097361 kafka分区及副本在broker的分配@(KAFKA)[kafka, 大数据]部分内容参考自:http://blog.csdn.net/lizhitao/article/details/41778193下面以一个Kafka集群中4个Broker举例,创建1个t..._topic 分区分配 brokearray

虚拟机安装VMwareTools_vmware tools iso-程序员宅基地

文章浏览阅读1k次。在VMware虚拟机中安装VMwareTools_vmware tools iso

〖产品思维训练白宝书 - 核心竞争力篇⑥〗- 产品经理核心竞争力解读之执行力_产品经理执行能力定义-程序员宅基地

文章浏览阅读2.9w次,点赞15次,收藏9次。该章节的内容是针对 "产品经理" 的 "执行力" 进行讲解,"执行力" 作为 "初级产品经理" 的必备技能,看起来似乎很容易,只要把领导交代的任务完成就可以了,其实不然。真的想执行的顺利、执行的到位,肯定是要花一番功夫的。所以这一章节,就为各位小伙伴讲解一下 "执行力" 的概念、意义以及 "产品经理" 在 "执行力" 上的执行动作对于我们普通人而言都有哪些参考价值。_产品经理执行能力定义

llinux简单部署一下_llinux 部署简单的策略-程序员宅基地

文章浏览阅读143次。Linux下的简单开发环境部署一.安装JDK8①下载解压方式②yum安装方式二.Mysql①下载解压方式②Yum安装方式一.安装JDK8安装之前首先需要进行检查一下系统里,看是否有已经有的open-jdk命令为:rpm -qa |grep javarpm -qa |grep jdkrpm -qa |grep gcj若已经有安装的,进行批量卸载;rpm -qa | grep java | xargs rpm -e --nodeps①下载解压方式下载jdk8登录网址:http://www.o_llinux 部署简单的策略

去掉所有字符里面的空格换行符等_kotlin 将换行符替换成空-程序员宅基地

文章浏览阅读3.3k次。有时候需要去掉字符串中的所有的字符空格,或者其他空格换行等,string里面的trim方法只能去掉字符串中前后的 空格,去不掉里面的,这么一来可就恶心了,上次用到了一个挺不错的,(网上查到的)其实就是利用的是简单的正则去掉匹配所有一致的字符替换为一个没有空格的空字符串,废话就到这里了,下边才是最重要的 /* String str = trim.replaceAll("\\s*", _kotlin 将换行符替换成空

推荐文章

热门文章

相关标签