前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >6、Python 数据类型

6、Python 数据类型

原创
作者头像
度假的小鱼
发布2023-11-06 21:13:26
1730
发布2023-11-06 21:13:26
举报
文章被收录于专栏:产品体验产品体验

6、Python 数据类型

数字类型介绍 整数 小整数对象池、浮点数、复数、布尔类型、空值、数据计算

数字类型

数字类型是不可变类型。所谓的不可变类型,指的是类型的值一旦有不同了,那么 它就是一个全新的对象。数字1和2分别代表两个不同的对象,对变量重新赋值--个 数字类型,会新建一一个数字对象。

还是要强调一下Python的变量和数据类型的关系,变量只是对某个对象的引用或者 说代号、名字、调用等等,变量本身没有数据类型的概念。只有1,[1, 2], "hello" 这一类对象才具有数据类型的概念。

Python支持三种不同的数字类型,整数、浮点数和复数。

整数

通常被称为整型,数值为正或者负,不带小数点。

表示数字的时候,有时我们还会用八进制或十六进制来表示: 十六进制用0x前缀和0-9,a-f表示, 例如: 0xff00 八进制用0o前缀和0-7表示,例如0o45

python的整数长度为32位,并且通常是连续分配内存空间的。

代码语言:javascript
复制
>>> a = 1
>>> id(a)
504917008  # 所占内存空间地址
>>> b = 2
>>> id(b)
504917040  # 和a的相差32
>>> 

小整数对象池

python初始化的时候会自动建立一个小整数对象池,方便我们调用,避免后期重复生成!这是 一个包含262个指向整数对象的指针数组,范围是-5到256。 比如整数10,即使我们在程序里没 有创建它,其实在Python后台已经悄悄为我们创建了。

代码语言:javascript
复制
>>> id(b)
504917040
>>> id(10)
504917296
>>> id(11)
504917328
>>> id(-5)
504916816
>>> id(-6)
48328656   # 很明显和-5的不一样
>>> id(-4)
504916848 # 和-5的连续 相差32
>>> id(257)
48327440
>>> 

整数缓存区

代码语言:javascript
复制
>>> a = 100
>>> id(a)
504920176
>>> del a  # 删除
>>> a
Traceback (most recent call last):
  File "<pyshell#15>", line 1, in <module>
    a
NameError: name 'a' is not defined
>>> b = 100
>>> id(b)
504920176  # b 和 a  的内存空间地址是一样的
>>> 

浮点数

浮点数也就是小数,如1.23, 3.14, -9.01, 等等。但是对于很大或很小的浮点数,- 般用科学 计数法表示,把10用e替代,1.23x10^9就是1.23e9, 或者12.3e8, 0.000012可以写成1 .2e-5, 等等。

代码语言:javascript
复制
>>> a = 10
>>> float(a)
10.0
>>> b = 1.1
>>> int(b)
1
>>> c = 1.5
>>> int(b)
1            #不遵循四舍五入,只取整数

复数

复数由实数部分和虛数部分构成,可以用a + bj ,或者complex(a,b)表示,复数的实部a和虚部b都是浮点。

数据计算

代码语言:javascript
复制
函数               返回值(描述)
abs(x)            返回数字的绝对值,如abs(-10) 返回10
ceil(x)           返回数字的上入整数,如math. ceil(4.1)返回5
exp(x)            返回e的x次幂(ex),如math.exp(1)返回2. 718281828459045
fabs(x)           返回数字的绝对值,如math. fabs(-10)返回10.0
floor(x)          返回数字的下舍整数,如math. floor(4.9)返回4
log(x)            如math. log(math .e )返回1.日, math.1og(100, 10)返回2.0
log10(x)          返回以10为基数的x的对数,如math. log10(100)返回2.0
max(x1, x2,...)   返回给定参数的最大值,参数可以为序列。
min(x1, x2, ...)  返回给定参数的最小值,参数可以为序列。
modf(x)           返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
Pow(x, y)         x**y运算后的值。
round(x [,n])     返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
sqrt(x)           返回数字x的平方根
acos(x)           返回x的反余弦弧度值。
asin(x)           返回x的反正弦弧度值。
atan(x)           返回x的反正切弧度值。
atan2(y, x)       返回给定的x及Y坐标值的反正切值。
cos(x)            返回x的弧度的余弦值。
hypot(x, y)       返回欧几里德范数sqrt(xx + yy)
sin(x)            返回的x弧度的正弦值。
tan(x)            返回x弧度的正切值。
degrees(x)        将弧度转换为角度,如degrees (math.pi/2),返回90.0
radians(x)        将角度转换为弧度
代码语言:javascript
复制
>>> import math
>>> abs(-1)
1
>>> math.ceil(4.1)
5
>>> math.floor(4.5)
4
>>> 

布尔类型

对于0和1、正与反,都是传统意义上的布尔类型。 但在Python语言中,布尔类型只有两个值,True 与False。请注意,是英文单词的对与 错,并且首字母要大写,不能其它花式变型。 布尔值通常用来判断条件是否成立。

True和False转换为1和0来计算

代码语言:javascript
复制
In [1]: a = 1
?
In [2]: if a > 3:
   ...:     print("这是一个大于3的数字")
   ...: else:
   ...:     print("这是一个小于3的数字")
   ...:
这是一个小于3的数字
?
In [3]: a > 3
Out[3]: False
?
In [4]: 3 in [1,2,3]
Out[4]: True
?
In [5]: 3 == 9/3
Out[5]: True
?
In [6]: 3 is '3'
Out[6]: False
?
In [7]: bool(1)
Out[7]: True
?
In [8]: bool(0)
Out[8]: False
?
In [9]: True == 1
Out[9]: True
?
In [10]: True == 0
Out[10]: False
?
In [11]: False == 0
Out[11]: True
?
In [12]: bool(0.0)
Out[12]: False
?
In [13]: bool(-0.0)
Out[13]: False
?
In [14]: bool(-1)
Out[14]: True
?
In [15]: bool(False)
Out[15]: False
?
In [16]: bool('False')
Out[16]: True
?
In [17]: True and True
Out[17]: True
?
In [18]: True and False
Out[18]: False
?
In [19]: False and False
Out[19]: False
?
In [20]: 5>3 and 3>2
Out[20]: True
?
In [21]: True or True
Out[21]: True
?
In [22]: True > False
Out[22]: True
?
In [23]: True == 1
Out[23]: True
?
In [24]: False == 0
Out[24]: True
?
In [25]: True -1
Out[25]: 0
?
In [26]: False +1
Out[26]: 1
?
In [27]: True*3
Out[27]: 3
?
In [28]:

空值

空值不是布尔类型,严格的来说放在这里是不合适的,只不过和布尔关系比较紧密。

空值是Python里一个特殊的值,用None表示(首字母大写)。None不能理解为0,因为0 是整数类型,而None是一个特殊的值。None也不是布尔类型,而是NoneType。

代码语言:javascript
复制
>>> None == 0
False
>>> bool(None)
False
>>> type(None)
<class 'NoneType'>
>>> type(1)
<class 'int'>
>>> type(False)
<class 'bool'>
>>> 

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 6、Python 数据类型
    • 数字类型
      • 整数
      • 小整数对象池
      • 整数缓存区
      • 浮点数
      • 复数
      • 数据计算
    • 布尔类型
      • 空值
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com