Python中的數據類型轉換
將數據由當前類型變化爲其他類型的操作就是數據類型轉換。數據類型轉換分爲兩類,分別是自動數據類型轉換 和 強制數據類型轉換。
自動轉換(隱式轉換)
自動轉換時程序根據運算要求進行的轉換,不許要人工干預。
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': '請看夏季'}