Python基础-02(数据类型的转换)


前言

本章大致了解主要的四种数据类型(int、float、string、Boolean)的强制转换


一、转换为整形(int)

b = 1
# 了解一下 python中数字(不加引号)默认的数据类型是int类型
print(type(b))  # <class 'int'>

1.str -> int

b = 1
b1 = str(b)
print(type(b1))  # <class 'str'>

2.float -> int

# float -> int
b2 = 1.83
b2 = int(b2)
print(type(b2))  # <class 'int'>
# 将float类型转换为int类型时,取整数部分(注意:不是四舍五入)
print(b2)  # 1

3.bool -> int

# bool -> int
b4 = True
b5 = False

b4 = int(b4)
b5 = int(b5)
print(b4, b5)  # 1 0
# 可以得知 布尔类型转换为int时 True为1 False为0

4.数据类型转换为int时的注意事项

'''
例:
a = '1.23' 此时变量a为字符串
a = int(a) 将字符串转换为整形
print(a)  报错 float转int是取前面的整数部分,而str转int毫无逻辑可言,小数点无法解析为数字

# str转数字(int、float等) 必须要符合数字内容的逻辑 以str转int为例 其中不可以有字母和非法字符
'''

二、转换为浮点数(float)

1.int -> float

b3 = float(b2)
print(type(b3))  # <class 'float'>
print(b3)  # 1.0

2.str -> float

c1 = '1.11'
c1 = float(c1)
print(c1)  # 1.11
print(type(c1))  # <class 'float'>

3.注意事项

'''
还是那句话,和上面str转int一个道理,如果str里面的内容不符合float转换的逻辑
就是出现一些非法字符什么的(str转float可以有小数点,但是str转int不可以)
'''

三、转换为字符串(str)

'''
为什么要转换成字符串?
将数据类型转换为字符串大都是用来 拼接 因为字符串只能和字符串进行拼接
'''
name = 'jwel:'
age = 23
print(name + age) #报错

'''
print(name + age) 此时报错 因为字符串无法和整形变量直接拼接在一起
所以要将其他类型转换为str类型才可以进行拼接
'''

1.int -> str

age = str(age)
print(name + age)  # jwel:23

2.float -> str

height = 183.5
height = str(height)
print(name + height)  # jwel:183.5

3.bool -> str

result = True
result = str(result)
print(result)  # True

四、转换为布尔类型(bool)

'''
为什么要转换成字符串?
将数据类型转换为字符串大都是用来 拼接 因为字符串只能和字符串进行拼接
'''
name = 'jwel:'
age = 23
print(name + age) #报错

'''
print(name + age) 此时报错 因为字符串无法和整形变量直接拼接在一起
所以要将其他类型转换为str类型才可以进行拼接
'''

1.int -> bool

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
'''

2.float -> bool

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
'''

3.str -> bool

# 只要字符串中有内容,那么强制转换为bool类型时都为True,反之为False(有空格也算有字符)
s = "加油加油"
s = bool(s)
print(s)  # True

s1 = ""
s1 = bool(s1)
print(s1)  # False

4.list -> bool

# 只要列表中有元素(数据),那么强制转换为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

5.tuple -> bool

# 只要元组中有元素(数据),那么强制转换为bool类型时,返回True;反之为False
tp = (1, 2, 3)
tp = bool(tp)
print(tp)  # True

tp0 = ()  # 空元组
tp0 = bool(tp0)
print(tp0)  # False

6.dict -> bool

# 只要字典中有内容(键值对),那么强制转换为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
'''

猜你喜欢

转载自blog.csdn.net/qq_45657848/article/details/135301040