Python3 基础数据类型-数值(int)类型

ebceca90381348d3977d87e05be2f1cd.png

 Python3 基础数据类型-数值(int)类型


        数值类型,Python支持三种不同的数字类型:整数、浮点数、复数。数字类型是不可变类型,意思是在系统中,类型的值发生了改变,那么就会生成一个全新的对象。对变量重新赋值一个数字类型,就会新建一个数字对象。

        这里还要强调一下Python的变量和数据类型的关系。变量,只是对某个对象的代号,变量本身不存在数据类型的概念。


一、整数

        在计算机语言中,整数一般称为整型,没有小数点,数值为正整数、负整数和0。在Python3中,整型可以当作Long类型直接使用,所以,Python3没有Python2的Long类型。

        整型在表示数字的时候,通常使用十进制(decimal)表示。

        特殊情况下,也会使用八进制(oct)十六进(he x)制表示: 

         八进制用0o前缀和0-7表示,例如0o45

        十六进制用0x前缀和0-9,a-f表示,例如:0xff00

>>> hex(11)		# 10转16
'0xb'
>>> oct(11)		# 10转8
'0o13'
>>> bin(11)		# 10转2
'0b1011'

        1.1 整数内存

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

>>> id(-2)
1509059968
>>> id(-1)
1509060000
>>> id(-1)-id(-2)
32

  备注:id()是用来查看内存地址

        上面的例子中,连续定义的两个整型,它们的内存地址刚好相差32,说明:第一,整型的内存长度为32位;第二,它们通常hi连续分配空间的。

       1.2 Python中的小整数对象池

        Python初始化的时候会自动建立一个小整数对象池,这是一个包含262个指向整数对象的指针数组,数值范围是-5到256,为了方便我们调用,即我们在程序中自己没有定义或者创建,其实在Python中已经存在了。

        那么问题来了,为什么要在这样?在编写程序的时候会很频繁的使用一些整数,如果每次要用到就创建,那么无疑会增加哼多内存开销。倒不如创建一个一直存在的,随用随取的小整数对象池这就是一个节省内存开销的最好办法了。

       1.3 Python中的整数缓冲区

        Python中除了内置初始化的小整数对象池之外,还有整数缓冲区。就是刚被删除的整数,它所占用的内存不会被真正删除回收,而是在后台缓冲一段时间,在次期间内可以再次被召回调用。

a = 100000
print(id(a))
del a

b = 100000
print(id(b))

--------------------
#输出:

3028842491600
3028842491600

        上面的案例中,我给变量a赋值了整数100000,用id(a)查看内存地址为:3028842491600;在删除a变量后,定义了变量b,并赋值100000,查看内存地址依旧是:3028842491600;这就是整数缓冲区。

        注意:这里用id()查看的地址,并不是在小整数对象池中,因为100000已经不在小整数对象池范围内了。还有,这个实验不能在交互环境中体现,可以使用pycharm中实验。


二、浮点数

        浮点数也就是带小数点的数,如:1.2、3.1415、-0.6等等。对那些非常大或者非常小的浮点数,一般采用科学计数发表示,将10代替为e,如:1.23x10^9用科学计数法表示为1.23e9或者12.3e8,0.000012用科学计数法表示为1.2e5.

        浮点数与整数之间的转换

>>> a = 1
>>> float(a)	# 整数转为浮点
1.0

>>> b = 2.2
>>> int(b)		# 浮点转为整数
2

三、复数

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

        在Python中创建复数:

>>> a = 1
>>> b = 2
>>> complex(a,b)	# a为实数部分,b为虚数部分 
(1+2j)

四、数学计算

        对于数学计算,除了简单的加减乘除,更多的科学计算需要导入math这个库,它包含了绝大多数我们可能需要的科学计算函数,如下表:

math库的相关方法
1ceil(x)返回数字的上入整数,如math.ceil(4.1) 返回 5。
2exp(x) 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045。
3fabs(x)返回数字的绝对值,如math.fabs(-10) 返回10.0。
4floor(x) 返回数字的下舍整数,如math.floor(4.9)返回 4。
5log(x)如math.log(math.e)返回1.0,math.log(100,10)返回2.0。
6log10(x)返回以10为基数的x的对数,如math.log10(100)返回 2.0。
7modf(x)返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
8pow(x, y)x**y 运算后的值。
9sqrt(x)返回数字x的平方根。
10acos(x)返回x的反余弦弧度值。
11asin(x)返回x的反正弦弧度值。
12atan(x)返回x的反正切弧度值。
13atan2(y, x) 返回给定的 X 及 Y 坐标值的反正切值。
14cos(x)返回x的弧度的余弦值。
15hypot(x, y)返回欧几里德范数 sqrt(xx + yy)。
16sin(x) 返回的x弧度的正弦值。
17tan(x)返回x弧度的正切值。
18degrees(x)将弧度转换为角度,如degrees(math.pi/2) , 返回90.0。
19radians(x)将角度转换为弧度。

      应用举例:

import math

math.ceil(4.1)  # 5 向上取整

math.floor(4.5) # 4 向下取整

math.pow(2,3)   # 8.0 2的三次方

  Python中常用的内置数学计算函数:

max(x1, x2,...) 		返回给定参数的最大值,参数可以为序列。
min(x1, x2,...) 		返回给定参数的最小值,参数可以为序列。
abs(x) 					返回数字的绝对值,如abs(-10) 返回 10。
round(x [,n]) 			返回浮点数x的四舍六入五成偶,如给出n值,则代表舍入到小数点后的位数。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

全村最好捉的羊

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值