标签:动态 基础语 字符串 类型转换 浮点数 float ber 指定 ima
数据类型
在现实中,会根据事物的不同表现,进而可以进行相应的分类。例如,当去超市购物时,超市会根据商品
的不同特征分类:食品类,日常用品类,家用电器类……在学数学时,也可以对数值进行分类:整数,小数,
分数,复数……。同样,在Python中,也可以根据数据的不同特征,对数值进行不同的分类。
在Python中,数据可以分为如下类型:
数值类型
整数类型(int)
浮点类型(float)
复数类型(complex)
布尔类型(bool)
序列类型
列表(list)
元组(tuple)
字符串(str)
字节(bytes)
映射类型(dict)
集合类型(set)
其他内置类型
鸭子类型
在Python中,严格来说,变量是不具有类型的,变量的类型完全取决于其所关联的对象类型,这与其他
语言的差别较大(C,Java等)。因此,常习惯的称Python的类型为“鸭子类型”,这是一种动态类型的体现。
说明:
1、由于变量必须要关联一个具体的对象,才能确定变量的类型。因此,在定义变量时,不能只给出变量
的名字,必须要同时也给出变量所关联的对象。
2、python2中还支持长整数类型(Long),在python3中取消。
整数类型
整数类型(int)是最常使用的类型。支持四种进制的表示
二进制(使用0b或0B前缀)
八进制(使用0o或0O前缀)
十进制(无前缀)
十六进制(使用0x或0X前缀,10 ~ 15使用a ~ f或A ~ F表示)
进制转换
可以调用相应的函数,来对四种进制之间进行转换。
bin() 其他进制转换成二进制
oct() 其他进制转换成八进制
int() 其他进制转换成十进制
hex() 其他进制转换成十六进制
分隔符
当数值较大时(尤其是二进制),对程序的可读性会造成影响,此时,可以在数值之间使用
一个_进行分隔,从而提高程序的可读性(Python3.6)。
布尔类型
布尔类型(bool)表示的是一种条件的判断,具有两个值:True与False。其中,True表示条件成立,
即为“真”,而False表示条件不成立,即为“假”。布尔类型是整数类型的子类型。实际上,True就是1,
False就是0。因而,也可以使用布尔类型参与数学上的运算,与使用1与0参与运算的结果是一样的。
浮点类型
浮点类型(float)就是数学上的小数类型。例如:1.0,-2.5等,都是浮点类型。在进制表示上,浮点类
型仅支持十进制表示(这点不同于整数类型)。除了常规的表示方式外,浮点类型也可以使用数学上科学计
数法的形式表示,例如:
1.5e30
说明:
十进制的整数类型不能使用0开头,但是浮点类型可以以0开头。
浮点类型的特殊值
浮点类型具有两个特殊值:NaN(Not A Number)与Infinity(无穷大),其中无穷大又可分为正无穷
(+Infinity)与负无穷(-Infinity)。可以通过float函数来获得这些值。
NaN有一个特征,就是自己不等于自己,因此,不能通过==来判断一个数值是不是NaN。
浮点数据类型的不精确性
在使用浮点类型时,需要留意,浮点类型在计算机中仅是近似的存储,浮点类型是不精确的。因此,要避
免进行如下的操作:
1、避免数量级相差很大的浮点数之间进行运算。
2、避免进行等量的比较。
decimal 的使用
考虑到浮点类型的不确定性,因此,如果需要进行精确计算时,可以使用decimalmo模块中的Decimal类
来实现,该类提供精确的浮点计算。
此外,也可以指定Decimal的计算精度,即计算结果最多保留的有效数字位数,默认为28位有效数字。
复数类型
Python中的复数类型(complex)类似于数学上的复数。含有虚部(使用j或J后缀)的数值为复数类型。
例如:
3 + 5j,-2 - 3j(数学中虚部后缀为i)。
复数分为实部与虚部两个部分,可以通过real与imag属性分别获取复数的实部与虚部的值。
类型转换
可以通过type函数获取变量的类型,准确的讲,应该是变量所关联的对象的类型。
类型转换函数
python提供了一些转换函数,可以在不同的类型之间进行类型转换。
int(value)
将数值类型或字符串转换为整数(int)类型。如果没有参数,返回0。
float(value)
将数值类型或字符串转换成浮点(float)类型。如果没有参数,返回0。
complex(real, imag)
根据实部和虚部(可选)创建一个复数。如果没有参数,返回0j。
bool(value)
参数为真时,返回True,否则返回False。
注意:
1、尽管可以使用转换函数进行类型转换,但并非任意两个类型之间都是能够进行转换的。
例如,复数类型就不能够通过int或float转换为整数或浮点类型。
2、此外,int函数还可以提供第二个参数,指定解析转换时,使用的进制。此时,第一个参数
需要是字符串类型(或字节等类型),不能是数值类型。例如:
int("300",16)
则会根据16进制来解析300,最终函数返回的结果为768,而不是300。如果没有指定第
二个参数,则默认为十进制。
标签:动态 基础语 字符串 类型转换 浮点数 float ber 指定 ima
原文地址:https://www.cnblogs.com/leilong/p/8886540.html