本章大致了解主要的四种数据类型(int、float、string、Boolean)的强制转换
b = 1
# 了解一下 python中数字(不加引号)默认的数据类型是int类型
print(type(b)) # <class 'int'>
b = 1
b1 = str(b)
print(type(b1)) # <class 'str'>
# float -> int
b2 = 1.83
b2 = int(b2)
print(type(b2)) # <class 'int'>
# 将float类型转换为int类型时,取整数部分(注意:不是四舍五入)
print(b2) # 1
# bool -> int
b4 = True
b5 = False
b4 = int(b4)
b5 = int(b5)
print(b4, b5) # 1 0
# 可以得知 布尔类型转换为int时 True为1 False为0
'''
例:
a = '1.23' 此时变量a为字符串
a = int(a) 将字符串转换为整形
print(a) 报错 float转int是取前面的整数部分,而str转int毫无逻辑可言,小数点无法解析为数字
# str转数字(int、float等) 必须要符合数字内容的逻辑 以str转int为例 其中不可以有字母和非法字符
'''
b3 = float(b2)
print(type(b3)) # <class 'float'>
print(b3) # 1.0
c1 = '1.11'
c1 = float(c1)
print(c1) # 1.11
print(type(c1)) # <class 'float'>
'''
还是那句话,和上面str转int一个道理,如果str里面的内容不符合float转换的逻辑
就是出现一些非法字符什么的(str转float可以有小数点,但是str转int不可以)
'''
'''
为什么要转换成字符串?
将数据类型转换为字符串大都是用来 拼接 因为字符串只能和字符串进行拼接
'''
name = 'jwel:'
age = 23
print(name + age) #报错
'''
print(name + age) 此时报错 因为字符串无法和整形变量直接拼接在一起
所以要将其他类型转换为str类型才可以进行拼接
'''
age = str(age)
print(name + age) # jwel:23
height = 183.5
height = str(height)
print(name + height) # jwel:183.5
result = True
result = str(result)
print(result) # True
'''
为什么要转换成字符串?
将数据类型转换为字符串大都是用来 拼接 因为字符串只能和字符串进行拼接
'''
name = 'jwel:'
age = 23
print(name + age) #报错
'''
print(name + age) 此时报错 因为字符串无法和整形变量直接拼接在一起
所以要将其他类型转换为str类型才可以进行拼接
'''
i = 1
i = bool(i)
print(i) # True
i1 = 2
i1 = bool(i1)
print(i1) # True
i2 = -1
i2 = bool(i2)
print(i2) # True
i0 = 0
i0 = bool(i0)
print(i0) # False
'''
由以上案例可以得出结论 若对非0整数进行布尔转换,结果为True,反之为False
'''
f = 1.23
f = bool(f)
print(f) # True
f1 = -0.23
f1 = bool(f1)
print(f1) # True
f0 = 0
f0 = bool(f0)
print(f0) # False
'''
由以上案例可以得出结论 若对非0.0浮点数进行布尔转换,结果为True,反之为False
'''
# 只要字符串中有内容,那么强制转换为bool类型时都为True,反之为False(有空格也算有字符)
s = "加油加油"
s = bool(s)
print(s) # True
s1 = ""
s1 = bool(s1)
print(s1) # False
# 只要列表中有元素(数据),那么强制转换为bool类型时,返回True;反之为False
lt = ['a', 'b', 'c']
lt = bool(lt)
print(lt) # True
lt0 = [] # 这里一个元素都没有就是 奥义真·空 列表空 返回False
lt0 = bool(lt0)
print(lt0) # False
'''
注意啊!列表中拥有元素就不算空,元素的内容为空是元素的事情,但是依然是一个元素(存在),列表不为空
'''
lt1 = [''] # 元素空不代表列表空
lt1 = bool(lt1)
print(lt1) # True
# 只要元组中有元素(数据),那么强制转换为bool类型时,返回True;反之为False
tp = (1, 2, 3)
tp = bool(tp)
print(tp) # True
tp0 = () # 空元组
tp0 = bool(tp0)
print(tp0) # False
# 只要字典中有内容(键值对),那么强制转换为bool类型时,返回True;反之为False
dc = {"name": "paul"}
dc = bool(dc)
print(dc) # True
dc0 = {}
dc0 = bool(dc0)
print(dc0) # False
'''
大致总结一下 转换为bool类型的规律
int 和 float 的规律
int非0整数均为True;0为False
float非0.0浮点数均为True;0.0为Flase
str
字符串内容非空即为True;反之为False
list、tuple、dict
里面有内容就为True
没有内容 空的时候为False
'''