AI智能
改变未来

Python – 基本数据类型_Number 数字、bool 布尔、complex 复数


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.010.50

进制数

10 进制

  • 0,1,2,3,4,5,6,7,8,9
  • 满 10 进 1 位
  • 正常写的 Number 都是 10 进制

2 进制

  • 0,1
  • 满 2 进 1位
# 二进制print(0b10)  # 2^1 + 0print(0b11)  # 2^1 +2^0print(0b100)  # 2^2 + 0 + 0# 输出结果234

8 进制

  • 0,1,2,3,4,5,6,7
  • 满 8 进 1位
# 八进制print(0o1)  # 1print(0o11)  # 8^1 + 1print(0o117)  # 8^2 + 8^1 + 7# 输出结果1979

16 进制

  • 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
  • 满 16 进 1位
# 十六进制print(0x1)  # 1print(0x19)  # 16+9print(0x2A)  # 16*2+10print(0x9F)  # 16*9+15# 输出结果12542159

int() 转成十进制

int 可以将数字字符串和 Number 类型的值转成整数

# 转成十进制print(0b101)print(0o777)print(0xBBB)print(int(0b101))print(int(0o777))print(int(0xBBB))print(int(\"-123\"))print(int(1.1))print(int(1.9))# 输出结果5511300355113003-12311
  • 不写 int() 的话,也可以将其他进制的数自动转成十进制
  • int() 能将纯整数(不能是浮点数)的字符串转成 int 类型
  • 传入浮点数不会进行四舍五入,直接取整数部分

bin() 其他进制数转二进制

# 转成二进制print(bin(10))  # 10 转成 2进制print(bin(0o7))  # 7 转成 2进制print(bin(0xA))  # 10 转成 2进制print(bin(0o27))  # 8*2+7 转成 2进制print(bin(0x22E))  # 16^2*2+16*2+14 转成 2进制# 输出结果0b10100b1110b10100b101110b1000101110

oct() 其他进制转成八进制

# 转成八进制print(oct(110))print(oct(0b100))print(oct(0xAAA))# 输出结果0o1560o40o5252

hex() 其他进制转成十六进制

# 转成十六进制print(hex(110))print(hex(0b100))print(hex(0o777))# 输出结果0x6e0x40x1ff

bool

布尔类型

  • 真:True
  • 假:False
# 打印 bool 和 typeprint(True)print(False)print(type(True))print(type(False))# 输出结果TrueFalse<class \'bool\'><class \'bool\'>

注意不是 true 和 false哦

为什么说 bool 属于 Number 的一种呢?

# 可以将它转成 int 呢?print(int(True))print(int(False))# 输出结果10

因为 int 能讲 bool 转成整型,True 就是 1,False 就是 0

那只有 1 和 0 能表示 True 和 False吗?

并不是

Number

# 数字print(bool(1))print(bool(1.1))print(bool(-1))print(bool(0))# 输出结果TrueTrueTrueFalse

字符串

# 字符串print(bool(\"123\"))print(bool(\"\"))print(bool(\"  \"))print(bool(\"\\n\"))# 输出结果TrueFalseTrueTrue

列表

# 列表print(bool([1, 1]))print(bool([]))# 输出结果TrueFalse

元组

# 元组print(bool((1, 1)))print(bool(()))# 输出结果TrueFalse

set

# setprint(bool({1, 1, 1}))print(bool({}))# 输出结果TrueFalse

None

# Noneprint(bool(None))# 输出结果False

总结

无论什么数据类型,主要是空值就会为 False,非空就是 True

复数

  • 36j,直接在数字后面加 j
  • 用的比较少,不写了
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Python – 基本数据类型_Number 数字、bool 布尔、complex 复数