第4章 - Number 数值类型
4.1 整型
在python 3中,整数没有限制大小,可以当作long类型使用。
Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样
例如:1,100,-8080,0,等等。
计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示 例如:0xff00,0xa5b4c3d2,等等。
注意: 整数用/
,得到的结果是浮点数,因为除法/
计算结果是浮点数,即使恰好整除,得到的结果也是浮点数。
如果只想得到整数的结果,需要使用地板除//
,而余数运算使用%
4.2 浮点型
浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的 如,1.23x109和12.3x108是完全相等的。浮点数可以用数学写法,如1.23,3.14,-9.01等。
对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代 1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。
整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法也是精确的),而浮点数运算则可能会有四舍五入的误差。
注意: 对于浮点数的除法计算,无论/
还是//
,结果都是浮点数
4.3 复数
复数由实数部分 和 虚数部分构成,可用 a + bj 或 complex(a, b )表示,其中 a 和 b 均为浮点数。
4.4 数据类型转换
对于类型转换,只需要将数据类型作为函数名即可。例如
int(x) 将x转换为一个整数
float(x) 将x转换为一个浮点数
complex(x) 将x转换为一个复数,实数部分为x,虚数部分为0
complex(x, y) 将x转换为一个复数,实数部分为x,虚数部分为y
4.5 示例
4.5.1 类型
print('==========[ 整型 ]==========')
print(25 + 26) # 51
print(25 - 26) # -1
print(25 * 3) # 75
print(25 / 3) # 8.333333333333334
print(25 // 3) # 8
print(25 % 3) # 1
print(0xA0F) # 2575
print(0o37) # 31
print('\n==========[ 浮点型 ]==========')
print(3.3 * 102) # 336.59999999999997
print(153 / 51.0) # 3.0
print(155 / 51.0) # 3.0392156862745097
print(155 // 51.0) # 3.0
print(155 % 51.0) # 2.0
print('\n==========[ 复数 ]==========')
print('complex (复数), 如 1 + 2j、 1.1 + 2.2j')
print('\n==========[ 数据类型转换 ]==========')
print(int(352.1))
print(float(352))
print(complex(10))
import math
print('\n==========[ 常量 ]==========')
print(math.e)
print(math.pi)
print('\n==========[ 进制转化 ]==========')
print(bin(10))
print(oct(10))
print(int(10))
print(hex(10))
4.5.2 运算符
print('==========[ 算数运算符 ]==========')
print(5 + 2) # 7
print(5 - 2) # 3
print(5 * 2) # 10
print(5 ** 2) # 25
print(5 / 2) # 2.5
print(5 // 2) # 2
print(5 % 2) # 1
print('\n==========[ 比较运算符 ]==========')
print(5 == 2) # False
print(5 != 2) # True
print(5 > 2) # True
print(5 < 2) # False
print(5 >= 2) # True
print(5 <= 2) # False
print('\n==========[ 赋值运算符 ]==========')
print('\n==========[ 位运算符 ]==========')
print(bin(12 & 10)) # 0b1000
print(bin(12 | 10)) # 0b1110
print(bin(12 ^ 10)) # 0b110
print(bin(~12)) # -0b1101
print(1 << 3) # 8
print(bin(1 << 3)) # 0b1000
print(8 >> 3) # 1
print(bin(8 >> 3)) # 0b1
print('\n==========[ 逻辑运算符 ]==========')
print(True and True) # True
print(True or False) # True
print(not True) # False
print('\n==========[ 成员运算符 ]==========')
list = [1, 2, 3, 4, 5]
print(1 in list) # True
print(1 not in list) # False
print('\n==========[ 身份运算符 ]==========')
idA = 10
idB = 10
print(idA is idB) # True
print(idA is not idB) # False
idB = 20
print(idA is idB) # False
print(idA is not idB) # True