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)) # 输出结果 5 511 3003 5 511 3003 -123 1 1
- 不写 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进制 # 输出结果 0b1010 0b111 0b1010 0b10111 0b1000101110
oct() 其他进制转成八进制
# 转成八进制 print(oct(110)) print(oct(0b100)) print(oct(0xAAA)) # 输出结果 0o156 0o4 0o5252
hex() 其他进制转成十六进制
# 转成十六进制 print(hex(110)) print(hex(0b100)) print(hex(0o777)) # 输出结果 0x6e 0x4 0x1ff
求模
# 求模 print(5 % 2) print(5.1 % 2) # 输出结果 1 1.0999999999999996
- 浮点数的求模结果为一堆小数位,而不是 1.1
- 因为在计算机内存,有的浮点数无法被精确的表示,在这里,只能使用近似值来表示 1.1
灵魂拷问:为什么%
表示模除而不是“百分号”?
- 平时我们把它看做一个“百分号”
- 在编程计算中,通常把它和
/
一样当做除法的运算符 - 求模是一个不同的运算,只是用
%
符号来表示
% 求模是如何运算的
- X 除以 Y 余 J 比如, 100 除以 16 余数为 4
- 100%16 就等于 4
幂运算
# 幂运算 print(2 ** 3) # 2 的 3次方 print(1.1 ** 3) # 1.1 的 3 次方 # 输出结果 8 1.3310000000000004
bool
布尔类型
- 真:True
- 假:False
# 打印 bool 和 type print(True) print(False) print(type(True)) print(type(False)) # 输出结果 True False <class 'bool'> <class 'bool'>
注意不是 true 和 false哦
为什么说 bool 属于 Number 的一种呢?
# 可以将它转成 int 呢? print(int(True)) print(int(False)) # 输出结果 1 0
因为 int 能讲 bool 转成整型,True 就是 1,False 就是 0
那只有 1 和 0 能表示 True 和 False吗?
并不是
Number
# 数字 print(bool(1)) print(bool(1.1)) print(bool(-1)) print(bool(0)) # 输出结果 True True True False
字符串
# 字符串 print(bool("123")) print(bool("")) print(bool(" ")) print(bool("\n")) # 输出结果 True False True True
列表
# 列表 print(bool([1, 1])) print(bool([])) # 输出结果 True False
元组
# 元组 print(bool((1, 1))) print(bool(())) # 输出结果 True False
set
# set print(bool({1, 1, 1})) print(bool({})) # 输出结果 True False
None
# None print(bool(None)) # 输出结果 False
总结
无论什么数据类型,主要是空值就会为 False,非空就是 True
复数
- 36j,直接在数字后面加 j
- 用的比较少,不写了