零基础学python(基础篇008)----类型转换

219 阅读2分钟

「时光不负,创作不停,本文正在参加2022年中总结征文大赛

类型转换

在Python中常用的数值运算符有8个,具体请见下表:(python3.)

函数描述
int(x)转换为整数
float(x)转换为浮点数
str(x)转换字符串
bool(x)转换布尔

转换为整数

a = '123'
print(type(a))             #<class 'str'>
b = int(a)
print(b)                   #123
print(type(b))             #<class 'int'>

#以下两种情况会装换失败
# 字符串中包含数字以外的字符,不能转换为int

print(int('123.456'))  
print(int('74545sd'))  #ValueError: invalid literal for int() with base 10: '74545sd'

布尔转换为整数(bool->int)

t = True
print(int(t))  #1
f = False
print(int(f))  #0

转换为浮点数

a = '123'
c = float(a)
print(c)                #123.0
print(type(c))          #<class 'float'>

print(float("1.6546"))  #1.6546
#字符串不是小数、整数格式,不能转换为float
print(float("jij1546"))  #ValueError: could not convert string to float: 'jij1546'

转换为字符串

print(str(458))             #458
print(str(654.14485))       #654.14485
print(str(True))            #True

str_list = ['aaa','bbb','ccc']
print(str(str_list))        #['aaa', 'bbb', 'ccc']

转换为布尔

整数转换为布尔(int->bool)

非0整数转换为布尔全是True,0转换为布尔为False

print(bool(10))             #True
print(bool(0))              #False 
print(bool(-102))            #True

浮点数转换为布尔(float->bool)

大小不为0的浮点数转化为布尔全为True,0.0、0.00/0.000等(值大小为0)的浮点数转换为布尔为False

print(bool(425.5454))     #True
print(bool(-652.552))     #True
print(bool(0.0))          #False
print(bool(0.0000))       #False

字符串/列表/元组/字典 转换为布尔(str/list/tuple/dict->bool)

非空(不为''/"")字符串转换为布尔全是True, ''/""转换boolen类型为False

非空List列表, 非空Tuple元组, 非空Dict字典转换为布尔全是True(只要这几个数据类型的变量里面有数据转换为布尔全为True),反之为False

#str字符串
print(bool(" "))             #True
print(bool("abc"))           #True
print(bool("&*%"))           #True
print(bool("123"))           #True

print(bool(""))              #False
print(bool(''))              #False
#List列表
print(bool([]))              #False
print(bool([""]))            #True
print(bool([" "]))           #True
print(bool(["aa",""]))       #True
#Tuple元组
print(bool(()))              #False
print(bool((1, 2)))          #True
print(bool(('1', 2, '')))    #True
#Dict字典
print(bool({}))                     #False
print(bool({'a': '123'}))           #True
print(bool({'': ''}))               #True
print(bool({'': 100}))              #True

只有 0、0.0(大小等于0的浮点数)、''、""、[]、{}、()转换为布尔为False;其他数据转换为布尔全为True。

寄语:“问号是开启任何一门科学的钥匙”。愿你以后,要多有几个问号。