数据类型
Python中的数据类型有:
数值类型:整型(int)、浮点型(float)、复数(complex)、长整型(long)
注意:在Python3中,长整型已经被废弃了。
字符串类型(str):例如 a = ‘qwer’
布尔类型(bool):True、False
列表(list):例如 list1 = [1, 2, 3]
元组(tuple): 例如 tup1 = (1,2,3)
字典(dict): 例如 dict1 = {‘name’: ‘张三’,‘age’:18}
集合(set): 例如 fruits = {‘apple’,‘pear’,‘banana’}
1.数值类型
整型(int):通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 long 类型(长整型)使用,所以 Python3 没有 Python2 的 long 类型。
a = 10
浮点型(float):浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(1.2e2 = 1.2 x 10^2 = 120)。
b = 1.2
复数(complex) : 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
c = 1.2 + 5j
2.不同进制间的转换
讲到数值类型,必不可少的就是不同进制数据的表示方式以及转换方式。
计算机其实只能保存二进制0和1,为了方便数据的表示,同时计算机也支持八进制和十六进制。
在Python里,二进制、八进制、十进制、十六进制都能被表示,有些语言只能表示十进制的数。
2.1进制的表示
a = 90 #默认数字都是十进制的数字 90就是十进制的九十
b = 0b101 #以0b开头的数字是二进制的数字。
print(b) # 5 ,当使用print语句打印一个数字的时候,默认也是使用十进制打印输出的。
二进制里面最大的个位数是1,不能出现2。
c = 0o23 #以0o开头的数字是八进制的数字。
print(c) # 19
八进制里最大的个位数是7.
d = 0x3a #以0x开头的数字是十六进制的数字。
print(d) # 58
十六进制 :0 ~ 9 ,a ~ f
2.2使用代码进行进制转换
a = 13 # 十进制的数字13
print(bin(a)) # 0b1101 使用bin内置函数可以将数字转换成为二进制
print(oct(a)) # 0o15 使用oct内置函数可以将数字转换成为八进制
print(hex(12)) # 0xd 使用hex内置函数可以将数字转换成为十六进制
3.数据类型的转换
3.1区别与原因
类型转换与进制转换的区别:
进制转换是将 int 类型以不同的进制表现出来。
类型转换是将一个类型的数据转换为其他类型的数据。
int ==> str str ==> int bool ==> int int ==> float
转换数据类型的原因:
因为不同的数据类型,进行运算时,它的运算规则不一样。
3.2转换成为整数
使用 int 内置类可以将数据转换成为整数
a = '30'
b = int(a)
print(a) # 30
print(b) # 30
print(a + 1) # 报错
print(b + 1) # 31
如果字符串不是一个合法的数字,会直接报错。
x = 'hello'
y = int(x)
print(y) #报错
x = '14'
y = int(x, 8) # 把字符串 14 当做八进制转换成为整数
print(y) # 12 打印一个数字,默认使用十进制输出
3.3转换成为浮点数
使用float内置类可以将其他类型数据转换成为 float浮点数。
a = '1.23'
b = float(a)
print(b + 1) # 2.23
如果字符串不能被转换成为有效的浮点数,会报错。
c = float('hello')
print(c) # 报错
m = float('10') # 将字符串转换成为浮点数
n = float(10) # 将整型数字转换成为浮点数
print(m, n) # 10.0 10.0
3.4转换成为字符串
使用 str 内置类可以将其他类型的数据转换成为字符串。
a = 10
b = str(a)
print(a + 1) # 11
print(b + 1) # 报错
print(a) # 10
print(b) # 10
print(type(a)) # <class 'int'> a为整型
print(type(b)) # <class 'str'> b为字符串
3.5转换成为布尔值
使用 bool内置类可以将其他数据类型转换成为布尔值。
print(bool(10)) # 将数字100转换成为布尔值
print(bool(-10)) # -10转换成为布尔值也是True
print(bool(0)) # False
数字里,只有数字 0 被转换成为布尔值是False,其他数字转换成为布尔值都是True。
print(bool('False')) # True
print(bool('')) # False
字符串里,只有空字符串 ’ ’ / " " 可以转换成为False,其他字符串都转换成为True。
print(bool(None)) # False 空数据
print(bool("None")) # True 此时 ""
None 转换成为布尔值是 False。
print(bool([])) # False 空列表
print(bool(())) # False 空元组
print(bool({})) # False 空字典
print(bool(set()))# False 空集合
数字0、空字符串 ’ ’ / " " 、空列表[]、空元组()、空字典{}、空集合set()、空数据None会被转换成为False.
在计算机里,True和False其实就是使用数字 1 和 0 来保存的。
print(True + 1) # 2
print(False + 1) # 1