专栏首页Java架构师进阶简简单单五分钟,教你搞定Python中数值类型的基础细节

简简单单五分钟,教你搞定Python中数值类型的基础细节

前面介绍了程序的流程控制,除此之外,你还需要在程序中表达数据,而为了表达数据,Python提供了各种数据类型。本文将介绍内置类型-Number,它用于表示数值类型,比如整数或实数。

本文将从以下几个方面来介绍Python中的数值类型:

如何定义数值类型的变量

数值类型的转换

数值类型的操作

如何定义数值类型的变量

Python内置了许多数值类型,这些类型中,常用的数值类型有int和float。你可以通过以下方式创建一个数值变量:

var1=1var2=10.0

var1是int类型的变量,它对应数学中的整数,它的范围是(-inf, inf),即无穷大,下面的例子说明了这一点:

>>> a =100>>> type(a)>>> b =10**1000>>> b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000>>> type(b)

其中a和b均是整数,然而后者是一个非常大的整数。10**1000是指10的1000次方。也就是说Python中的int试图在模拟数学中的整数。

var2是float类型的变量,它对应数学中的实数,你可以通过运行下面指令来查看它的范围:

>>> sys.float_infosys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308,min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)

以上输出包含了max和min信息,如果你输入一个比前者大的值,则输出结果会变成inf,示例如下所示:

>>> af =1.7976931348623157e+309>>> afinf>>> af =1.7976931348623157e+308>>> af1.7976931348623157e+308

另外,float类型的变量是有精度限制的(最多16位),因此如果你需要使用更高精度的实数,那么可以考虑使用Python自带的decimal模块。

除了以上数字类型之外,还有一个比较常见的数值类型:bool,它常常用于条件语句,虽然它的输出类型是bool,但是实际上它的内部数据是整型:

>>> baf = True>>> type(baf)>>> baf +23

以上就是Python中常用的数值类型,它们分别是int,float和bool,这些类型几乎会出现在各种编程场景,因此也是必须掌握的。

数值类型的转换

有时,你需要将数值类型转换成其它类型,比如str,或者数值类型之间想要相互转换。Python也提供了这些能力。

以下是数值类型转换成str类型的示例:

>>> str1 = str(3)>>> str2 = str(3.14)>>> str1'3'>>> str2'3.14'>>> type(str1)

以下是str类型转换成数值类型的示例:

>>> var1 = int('1')>>> var2=float('10.0')>>> var11>>> type(var1)

以下是float类型与int类型互转的示例:

>>> var1 = int(10.02)>>> var2 = float(var1)>>> type(var1)>>> type(var2)

数值类型的操作

定义了数值类型的变量之后,接下来就可以对这些变量进行操作了,比如加,减,乘,除,取模等等。

以下是对2个数值类型进行相加的操作:

>>> var1 =1+2>>> var2 =1+2.0>>> type(var1)>>> type(var2)>>> var13>>> var23.0

需要注意的是,2个不同类型相加,其中范围更小的类型会自动向范围更大的类型转换。比如上面的例子,var1可以由float来表示,因此该变量由int类型转换成float类型,然后再与2.0相加。

也可以使用比较操作符来比较2个数值类型的变量,比如,下面的例子说明了这一点:

>>> a =2>>> b =3.0>>> is_a_great_than_b = a > b>>> print("a > b") if is_a_great_than_b else print("a <= b")a <= b>>> type(is_a_great_than_b)

这句指令is_a_great_than_b = a > b比较了a和b,比较的结果是True。

除此之外,你还可以使用逻辑运算符来作用到数值类变量,具体例子如下所示:

>>> a =3>>> b =6.9>>> a_and_b = a and b>>> a_or_b = a or b>>> a_and_b6.9>>> type(a_and_b)>>> a_or_b3>>> type(a_or_b)

从上面的输出结果可知,and和or运算符并不是简单地输出True或False,而是把原来的变量值返回。

结论

以上内容便是Python中数值类型的基础,所以你必须学会如何定义和使用数值类型变量。数值类型的变量允许我们能够以计算机的方式刻画现实世界中的物体,比如我们想在计算机里定义一个人,那么这个人至少需要使用一个属性,比如年龄(Age)来表示,在计算机里,我们可以定义一个int类型的变量,叫Age来表示一个人的年龄。除此之外,每个人都有对应的名字,那么在计算机里如何表示一个名字呢?这就是接下来要介绍的字符串类型。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 告别加班:一个让你不再重复工作的技能

    996 一直是互联网老生常谈的话题了,但抛开其他只谈工作本身,你有没有想过,下班晚、加班,有时候可能是因为自己工作比较低效?

    小小詹同学
  • 你知道豆瓣电影是怎么评分的吗?

    “假设,是针对我们的分析结果而言。你希望最后输出一个什么结果,或者你需要证明什么结果,都可以当做假设!”

    小一不二三
  • 学习 Python 来做一些神奇好玩的事情吧

    相信看完 @X_AirDu 的回答我们已经对 Python 有了一个大概的了解。那接下来就让我们更深入的了解 Python 吧~

    SunnyGao
  • 学神之路 —— Python数据科学全攻略

    Python菜鸟到Python Kaggler 如果你梦想成为一名数据科学家,或者已然是数据科学家的你想扩展自己的工具库,那么,你找对地方啦。本文旨在为做数据分...

    灯塔大数据
  • 生信分析人员如何系统入门R(2019更新版)

    现在回过头来看,很多教程已然过时,当然并不是说的知识点过时,其实linux基本上几十年都没有怎么变动过基础知识的,哪怕你现在搜索到十几年前的linux教学视频,...

    生信技能树
  • 这里有 300 篇 Python 与机器学习类原创笔记

    主要包括计算机科学中基本的算法与数据结构,结合算法思想和Leetcode实战,总结介绍。

    好好学java
  • 【生信菜鸟经】如何系统入门R语言

    写在前面 R语言不仅在生物信息数据处理中发挥着重要作用,也是其它主流数据处理人士的首选工具。现在非常多自学生物信息学的小伙伴必须学的就是R,所以写一个R的系统性...

    生信技能树
  • 7天速成、免费学习,这套Python入门课我收藏了丨资源帖

    量子位
  • 灵魂追问 | 教程那么多,你……看完了吗?

    机器之心

扫码关注云+社区

领取腾讯云代金券