"""
数据类型
整数
浮点数
复数
布尔类型
"""
int_data = 12345
float_data = 0.234
complex_data = 2+3j
bool_data = True
bool_data2 = False
print(int_data)
print(type(int_data))
print(float_data)
print(type(float_data))
print(complex_data)
print(type(complex_data))
print(bool_data)
print(type(bool_data))
print(bool_data2)
print(type(bool_data2))
num_data = "17"
# 字符串转整数
int_data1 = int(num_data)
print(int_data1)
print(type(int_data1))
# 字符串转浮点
float_data1 = float(num_data)
print(float_data1)
print(type(float_data1))
# 字符串转复数
complex_data1 = complex(num_data)
print(complex_data1)
print(type(complex_data1))
# 字符串转布尔
bool_data3 = bool(num_data)
print(bool_data3)
print(type(bool_data3))
int_data2 = 14
# 整数转浮点
float_data2 = float(int_data2)
print(float_data2)
print(type(float_data2))
# 整数转布尔
bool_data4 = bool(int_data2)
print(bool_data4)
print(type(bool_data4))
float_data3 = 18.2
# 浮点转布尔
bool_data5 = bool(float_data3)
print(bool_data5)
print(type(bool_data5))
complex_data2 = 18 + 2j
# 复数转布尔
bool_data6 = bool(complex_data2)
print(bool_data6)
print(type(bool_data6))
str_data = None
# 空转布尔
bool_data7 = bool(str_data)
print(bool_data7)
print(type(bool_data7))
# 运算符
# 8的二进制为1000,10的二进制为1010
# &为按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
# 所以8 & 10用二进制表示为1000 也就是8
# |按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1
# 所以8 | 10用二进制表示为1010 也就是10
# ^为按位异或运算符:当两对应的二进位相异时,结果为1
# 所以8^10用二进制表示为0010 也就是2
# ~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1
# 所以~8用二进制表示1000的补码为1000也为-8减1的二进制为1000 1001也就是-9
print(8 & 10, 8 | 10, 8 ^ 10, ~8)