Python数字类型


在这里插入图片描述

Python数字类型

1. 数字类型

1.1 数字类型概述

  数字是自然界计数活动的抽象,更是数学运算和推理表示的基础。计算机对数字的识别和处理有两个基本要求:确定性和高效性。

  • 确定性指程序能够正确且无歧义地解读数据所代表的类型含义。例如,输入1010,计算机需要明确地知道这个输入是可以用来进行数学计算的数字1010,还是类似房间门牌号一样的字符串”1010",这两者用处不同、操作不同且在计算机内部存储方式不同。即便1010是数字,还需要进一步明确这个数字是十进制、二进制还是其他进制类型。
  • 高效性指程序能够为数字运算提供较高的计算速度,同时具备较少的存储空间代价。整数和带有小数的数字分别由计算机中央处理器中不同的硬件逻辑操作,对于相同类型操作,如整数加法和小数加法,前者比后者的速度一般快5~20倍。为了尽可能提高运行速度,需要区分不同运行速度的不同数字类型。

  表示数字或数值的数据类型称为数字类型,Python语言提供3种数字类型:整数浮点数复数,分别对应数学中的整数、实数和复数。1010表示一个整数,"1010"表示一个字符串。

1.2 整数类型

  整数类型与数学中整数的概念一致,下面是整数类型的例子:

1010,99,-217,0x9a,-0x89

  整数类型共有4种进制表示:十进制、二进制、八进制和十六进制。默认情况,整数采用十进制,其他进制需要增加引导符号,如下表所示。二进制数以0b引导,八进制数以0o引导,十六进制数以0x引导,大小写字母均可使用。

进制种类 引导符号 描述
十进制 默认情况,例如,1010,-425
二进制 0b或0B 由字符0和1组成,例如,0b101,0B101
八进制 0o或0O 由字符0到7组成,例如,0o711,0O711
十六进制 0x或0X 由字符0到9、a到f、A到F组成,例如,0xABC

  整数类型理论上的取值范围是[-∞,+∞],实际上的取值范围受限于运行Python程序的计算机内存大小。除极大数的运算外,一般认为整数类型没有取值范围限制。
  我们已经知道了常见的整数类型,那么整数之间如何进行转换呢?其他进制转为十进制使用int函数,其他进制转为二进制使用bin函数,其他进制转为八进制使用oct函数,其他进制转为十六进制转为hex函数,并且是借助于10进制作为中间的桥梁进行转换,也就是使用到int()函数。例如:把一个二进制的数转换为八进制的数,需要先把二进制转换为十进制,再转换为八进制。

函数 描述
int() 其他进制转换为十进制
bin() 其他进制转换为二进制
oct() 其他进制转换为八进制
hex 其他进制转换为十六进制

1.3 浮点数类型

  浮点数类型与数学中实数的概念一致,表示带有小数的数值。Python语言要求所有浮点数必须带有小数部分,小数部分可以是0,这种设计可以区分浮点数和整数类型。浮点数有两种表示方法:十进制表示和科学计数法表示。下面是浮点数类型的例子:

0.0,-77.,-2.17,3.1416,,96e4, 4.3e-3,9.6E5

科学计数法使用字母e或E作为幂的符号,以10为基数,含义如下:
<a>e<b> = a*10**b

  上例中4.3e-3值为0.004.3;9.6E5也可以表示为9.6E+5,其值为960 000.0。浮点数类型与整数类型由计算机的不同硬件单元执行,处理方法不同,需要注意的是,尽管浮点数0.0与整数0值相同,但它们在计算机内部表示不同。
  Python浮点数的数值范围和小数精度受不同计算机系统的限制,sys.float_info详细列出了Python解释器所运行系统的浮点数各项参数,例如:

import sys
print(sys.float_info)

  输出结果为:

sys.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),科学计数法表示下最大值的幂(max_10_e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

W_chuanqi

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

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

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

打赏作者

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

抵扣说明:

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

余额充值