數據類型轉換
將數據由當前類型變化為其他類型的操作就是數據類型轉換。數據類型轉換分為兩類,分別是自動數據類型轉換 和 強制數據類型轉換。
自動轉換(隱式轉換)
自動轉換時程序根據運算要求進行的轉換,不許要人工干預。
1.自動類型轉換不需要人工干預
2.自動類型轉換大多發生在運算或者判斷過程中
3.轉換時向著更加精確的類型轉換
示例代碼
newstring = 1.5
newnum = 1
print('newnum的類型是:',type(newnum),' newstring的類型是:',type(newstring))
newvalue = newstring + newnum #會向更精確的類型轉換,所以這里應該是轉換為浮點型
print('newstring + newnum = ',newvalue,'相加后的數據類型是:',type(newvalue))
輸出結果如下:
強制轉換(顯式轉換)
根據程序需要,由編寫程序人員人為改變數據類型的方式,叫做強制數據類型轉換。
int() 將其他類型轉換為整形
1.浮點類型轉換之后,舍去小數部分
2.布爾值轉換之后 True -> 1 False->0
3.字符串轉換,僅純整型字符串可以轉換(浮點型或者帶有其他字符都不可以轉換)
float() 將其他類型轉換為浮點型
1.整型轉換之后變為浮點型,后面+.0
2.布爾值轉換 True->1.0 False ->0.0
3.字符串,只有純整型字符串和純浮點型字符串可以轉換,其他都不可以
complex() 將其他類型轉換為復數類型
1.整型轉換之后變為 (整型+0j)
2.浮點型轉換之后變為(浮點型 + 0j)
3.布爾值轉化之后 True->(1+0j) False(0j)
4.字符串,純整型和浮點型字符串可以轉化,其他都不可以
bool() 將其他類型轉換為布爾類型
轉換為布爾值False:
1.整型 0
2.浮點型 0.0
3.復數 0+0j
4.布爾 False
5.字符串 '' 空字符串
6.列表 [] 空列表
7.元組 ()空元組
8.字典 {} 空字典
9.集合 set() 空集合
除了以上這些,其他轉換為布爾值都會得到True
str() 將其他類型轉換為字符串類型
所有轉換均改變類型為字符串,表示方式依舊不變
list() 將其他類型轉換為列表類型
在Python中有5種可迭代序列,可以相互轉換,它們分別是:
字符串,列表,元組,字典,集合
示例代碼
var = ('張三','李四','王老五')
newvar = list(var)
#newvar的值為 ['張三','李四','王老五']
‘’‘注釋:
1.字符串轉換時每個字符變成列表中的一個值
2.字典類型轉換時,僅將字典的鍵部分轉換成列表,忽略值部分
‘’’
tuple() 將其他類型轉換為元組類型
示例代碼
var = {'張三','李四','王老五'}
newvar = tuple(var)
#newvar的值為 ('張三','李四','王老五')
‘’‘注釋:
1.字符串轉換時每個字符變成元組中的一個值
2.字典類型轉換時,僅將字典的鍵部分轉換成元組,忽略值部分
‘’’
set() 將其他類型轉換為集合類型
var = ['張三','李四','王老五']
newvar = set(var)
#newvar的值為 {'張三','李四','王老五'} #值的順序不定
‘’‘注釋:
1.字符串轉換時每個字符變成元組中的一個值
2.字典類型轉換時,僅將字典的鍵部分轉換成元組,忽略值部分
‘’’
dict() 將其他類型轉換為字典類型
其他類型轉化為字典時需要按照指定的格式才可以轉化:(列表和元組的組合可以)
#var = [['cat', '黑貓警長'], ['mouse', '一只耳'], ['next', '請看夏季']]
var = [('cat', '黑貓警長'), ('mouse', '一只耳'), ('next', '請看夏季')]
#轉換后為 {'cat': '黑貓警長', 'mouse': '一只耳', 'next': '請看夏季'}