在声明变量时会用到数据类型,在Python中所有的数据类型都是类,每个变量都是类的“实例”。Python有6种标准数据类型:数字、字符串、列表、元组、集合和字典,而列表、元组、集合和字典可以保存多项数据。
数字类型
Python数字类型有4种:整数类型、浮点类型、复数类型和布尔类型。需要注意,布尔类型事实上是整数类型的一种。
整数类型
Python整数类型为int,它的范围可以达到无穷大,只受计算机硬件的限制。(Python3中不再区分整数和长整数)
- 二进制数:以0b或0B为前缀,如:0b11100
- 八进制数:以0o或0O为前缀,注意:第一个字符是阿拉伯数字0,第二个字符是英文字母o或O,如:0o34
- 十六进制数:以0x或0X为前缀,如:0x1c
示例如下:
十进制数:28
二进制数:0b11100 #等价于十进制数28
八进制数:0o34 #等价于十进制数28
十六进制数:0x1c #等价于十进制数28
浮点类型
浮点类型主要用来存储小数数值,Python浮点类型为float,Python只支持双精度浮点类型。浮点类型也可以用科学计数法表示,如:e2表示10^2=100。
输入下面代码:
a = 3.14
b = 314e-2
c = 0.0314e2
print(a,b,c)
运行结果为:a=b=c=3.14(如下图)
复数类型
Python支持复数,这使得Python能够很好地用来进行科学计算。Python中复数类型为complex,例如:1+2j表示的是实部为1、虚部为2的复数。
输入下面代码:
a = 1+2j #定义了实部为1,虚部为2的变量a
print(type(a)) #输出a的类型
print(a) #输出a
b = 2+4j #定义了实部为2,虚部为4的变量b
print(a+b) #输出a+b
代码运行结果:
在Python中实数用.real表示,虚数用.imag表示
示例代码如下
x = 654+321j
print('x的实数部分为:{0}'.format(x.real))
print('x的虚数部分为:{0}'.format(x.imag))
代码运行结果
x的实数部分为:654.0
x的虚数部分为:321.0
Process finished with exit code 0
布尔类型
Python中布尔类型为bool,bool是 int 的子类,它只有两个值:True和False,True的值为1,False的值为0。
任何数据类型都可以通过 bool() 函数转化为布尔值,而None(空对象)、False、0、0.0、0j(复数)、空字符串、空列表、空元组、空字典会被转换为False,否则就是True。
此外,也可以用bool()测试布尔值,示例代码如下
print(bool(88))
print(bool(0),bool(0.0),bool(()))
代码运行结果
True
False False False
Process finished with exit code 0
数字类型互相转换
除复数外,其他的3种数字类型(整数、浮点和布尔)都可以互相转换,转换分为隐式类型转换和显式类型转换。
隐式类型转换
操作数1类型 | 操作数2类型 | 转换后类型 |
---|---|---|
布尔 | 整数 | 整数 |
布尔、整数 | 浮点 | 浮点 |
输入下面代码:
a = True
b = 1
print(a+b)
c = 1.00
print(a+c)
代码运行结果:
显式类型转换
int()函数 | 可以将布尔、浮点和字符串转换为整数。布尔数值True会转换为1,False会转换为0;浮点数值使用int()会截掉小数部分 |
float()函数 | 可以将布尔、整数和字符串转换为浮点。True会转换为1.0,False会转换为0.0;整数值会加上小数部分“.0” |
bool函数() | 任何数据类型都可以通过bool()函数转化为布尔值,而None(空对象)、False、0、0.0、0j(复数)、空字符串、空列表、空元组、空字典会被转换为False,否则就是True |
输入下面代码:
a = True
b = int(a) #将bool类型转换为int类型
c = float(b) #将int类型转换为float类型
d = bool(c) #将float类型转换为bool类型
print(a,b,c,d)
代码运行结果: