Number
数字,是一个大的分类,细分四小类
- 整数:int
- 浮点数:float
- 布尔:bool
- 复数:complex
int 的栗子
print(type(-1)) print(type(1)) print(type(-999999999999999)) print(type(9999999999999999)) // 输出结果 <class 'int'> <class 'int'> <class 'int'> <class 'int'>
- 无论正数负数都是 int
- 即使数字再长也还是 int,不会变成像 java 的 long
float 的栗子
print(type(-1.0)) print(type(1.11)) print(type(-1.11111111111111)) //输出结果 <class 'float'> <class 'float'> <class 'float'>
即使精度再大,也还是 float,不会像 java 分单精度、双精度
加法
print(type(1 + 1)) print(type(1 + 1.0)) print(type(1 + 0.0)) print(type(1 + 1.11)) # 输出结果 <class 'int'> <class 'float'> <class 'float'> <class 'float'>
- int + int = int
- int + float = float,会自动转型为浮点数
- float + float = float
减法
print(type(1 - 1)) print(type(1 - 0.0)) print(type(1 - 1.1)) print(type(2.0 - 1)) # 输出结果 <class 'int'> <class 'float'> <class 'float'> <class 'float'>
和加法一个道理
乘法
print(type(1 * 1)) print(type(1 * 1.0)) print(type(-1 * -1.0)) print(type(2.0 * 1)) # 输出结果 <class 'int'> <class 'float'> <class 'float'> <class 'float'>
和加减法一个道理
除法
print(type(2 / 2)) print(type(2 / 1.0)) print(type(2 // 2)) print(type(2 // 1.0)) # 输出结果 <class 'float'> <class 'float'> <class 'int'> <class 'float'>
和加减乘法稍稍不一样哦,具体看下面
/ 和 // 的区别
- / 除法,自动转型成浮点数
- // 整除,只保留整数部分
print(2 / 2) print(2 // 2) print(1 / 2) print(1 // 2) # 输出结果 1.0 1 0.5 0
进制数
10 进制
- 0,1,2,3,4,5,6,7,8,9
- 满 10 进 1 位
- 正常写的 Number 都是 10 进制
2 进制
- 0,1
- 满 2 进 1 位
# 二进制 print(0b10) # 2^1 + 0 print(0b11) # 2^1 +2^0 print(0b100) # 2^2 + 0 + 0 # 输出结果 2 3 4
8 进制
- 0,1,2,3,4,5,6,7
- 满 8 进 1 位
# 八进制 print(0o1) # 1 print(0o11) # 8^1 + 1 print(0o117) # 8^2 + 8^1 + 7 # 输出结果 1 9 79
16 进制
- 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
- 满 16 进 1 位
# 十六进制 print(0x1) # 1 print(0x19) # 16+9 print(0x2A) # 16*2+10 print(0x9F) # 16*9+15 # 输出结果 1 25 42 159