Python基础数据类型

2.1Python中的数据类型

Python中,数据可以分为如下类型:

  • 数值类型
  • 整数类型(int
  • 浮点类型(float
  • 复数类型(complex
  • 布尔类型(bool
  • 序列类型
  • 列表(list
  • 元组(tuple
  • 字符串(str
  • 字节(bytes
  • 映射类型(dict
  • 集合类型(set
  • 其他内置类型

鸭子类型的概念:Python是弱类型语言,在Python中严格来说,变量是不具有类型的,变量的类型完全取决于其所关联的对象类型,这与其他语言的差别较大(CJava等)。因此经常习惯说Python的类型为“鸭子类型”,这是一种动态类型的体现。

说明:

  • 由于变量必须要关联一个具体的对象,才能确定变量的类型。因此,在定义变量时,不能只给出变量的名字,必须要同时也给出变量所关联的对象。
  • Python2中还支持长整数类型(long),但是这个在Python3中取消了。

2.2 整数类型

整数类型(int)是最常使用的类型。数学上使用的整数,例如5,3,-50等,这些都是整数类型。

整数类型支持四种进制表示:

  • 二进制(使用0b或0B前缀)
  • 八进制(使用0o或0O前缀)
  • 十进制(无前缀)
  • 十六进制(使用0x或0X前缀,10 ~ 15使用a ~ f或A ~ F表示)

可以调用相应的函数,来对四种进制之间进行转换。

  • bin():将其他进制转换为二进制
  • oct():将其他进制转换为八进制
  • int():将其他进制转换为十进制
  • hex():将其他进制转换为十六进制

2.3 布尔类型

布尔类型(bool)表示的是一种条件的判断,具有两个值:TrueFalse。其中,True表示条件成立,即为“真”,而False表示条件不成立,即为“假”。

布尔类型是整数类型的子类型。实际上,True就是1,False就是0。因此可以使用布尔类型参与数学上的运算,与使用1与0参与运算的结果是一样的。

2.4 浮点类型

浮点类型(float)就是数学上的小数类型。例如:1.0,-2.5等,都是浮点类型。在进制表示上,浮点类型仅支持十进制表示(这点不同于整数类型)。除了常规的表示方式外,浮点类型也可以使用数学上科学计数法的形式表示,例如:

1.5e30

说明:

  • 十进制的整数类型不能使用0开头,但是,浮点类型可以以0开头。
  • 浮点类型的特殊值
    浮点类型具有两个特殊值:NaN(Not A Number)与Infinity(无穷大),其中无穷大又可分为正无穷(+Infinity)与负无穷(-Infinity)。我们可以通过float函数来获得这些值。NaN有一个特征,就是自己不等于自己,因此不能通过==来判断一个数值是不是NaN

浮点类型的不精确性:
在使用浮点类型时需要留意,浮点类型在计算机中仅是近似的存储,浮点类型是不精确的。因此需要避免进行如下的操作:

  • 避免数量级相差很大的浮点值之间进行运算。
  • 避免进行等量的比较。

Decimal的使用:
考虑到浮点类型的不精确性,因此如果需要进行精确计算,我们可以使用decimal模块中的Decimal类来实现,该类提供精确的浮点计算。此外也可以指定Decimal的计算精度,即计算结果最多保留的有效数字位数,默认为28位有效数字。

2.5 复数类型

Python中的复数类型(complex)类似于数学上的复数。含有虚部(使用j或J后缀)的数值为复数类型。例如:3 + 5j,-2 - 3j(数学中虚部后缀为i)。复数分为实部与虚部两个部分,我们可以通过realimag属性分别获取复数的实部与虚部的值。

2.6 类型转换

获取数据类型:
可以通过type()函数获取变量的类型,准确的讲,应该是获取变量所关联的对象的类型。

类型转换函数:
我们可以在不同的类型之间进行类型转换,Python中为我们提供了如下的转换函数:

  • int(value):将value转换为整数(int)类型。如果没有参数,返回0。

  • float(value):将value转换为浮点(float)类型。如果没有参数,返回0。

  • complex(real, imag):根据实部与虚部(可选)创建一个复数。如果没有参数,返回0j。

  • bool(value)value为真值时,返回True,否则返回False

说明:

  • 尽管可以使用转换函数进行类型转换,但并非任意两个类型之间都是能够进行转换的。例如,复数类型就不能够通过intfloat转换为整数或浮点类型。
  • 此外,int函数还可以提供第二个参数,指定解析转换时,使用的进制。此时,第一个参数需要是字符串类型(或字节等类型),不能是数值类型。例如:int(“300”, 16)
    则会根据16进制来解析300,最终函数返回的结果为768,而不是300。如果没有指定第二个参数,则默认为十进制。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值