Python數字類型數據的轉換


Number類型的強制轉換

int強制將數據轉換成字符串

可轉換類型:int、float、bool、純數字字符串

var = 10
res = int(var)
print(res, type(res))

var = 3.14
res = int(var)
print(res, type(res))

var  = True
res = int(var)
print(res, type(res))

var = False
res = int(var)
print(res, type(res))

var = "123456"
res = int(var)
print(res, type(res))

# var = "123abc"
# res = int(var)
# print(res, type(res))      # Error

# var = 3+5j
# res = int(var)
# print(res, type(res))      # Error

float強制將數據轉換成字符串

可轉換類型:int、float、bool、純數字字符串、純小數字符串

var = 10
res = float(var)
print(res, type(res))

var = 3.14
res = float(var)
print(res, type(res))

var  = True
res = float(var)
print(res, type(res))

var = False
res = float(var)
print(res, type(res))

var = "123456"
res = float(var)
print(res, type(res))

var = "0.123"
res = float(var)
print(res, type(res))

# var = "123abc"
# res = float(var)
# print(res, type(res))      # Error

# var = 3+5j
# res = float(var)
# print(res, type(res))      # Error

complex強制將數據轉換成字符串

可轉換類型:int、float、bool、complex、純數字字符串、純復數字符串

var = 10
res = complex(var)
print(res, type(res))

var = 3.14
res = complex(var)
print(res, type(res))

var  = True
res = complex(var)
print(res, type(res))

var = False
res = complex(var)
print(res, type(res))

var = "123456"
res = complex(var)
print(res, type(res))

var = "5+2j"
res = complex(var)
print(res, type(res))

var = 3+5j
res = complex(var)
print(res, type(res))

# var = "123abc"
# res = complex(var)
# print(res, type(res))      # Error

bool強制將數據轉換成字符串

可轉換強轉一切數據類型,返回值為True或False

var = 3+5j
res = bool(var)
print(res, type(res))

var = "123abc"
res = bool(var)
print(res, type(res))

var = [1, 2, 3,"abc"]
res = bool(var)
print(res, type(res))

var = (1, 2, 3,"abc")
res = bool(var)
print(res, type(res))

var = {1, 2, 3,"abc"}
res = bool(var)
print(res, type(res))

var = {"a":1, "b":2}
res = bool(var)
print(res, type(res))

bool值為False的十種情況

0      # 整型0
0.0    # 浮點型0.0
False  # 布爾型False
0j     # 復數型0j或0+0j
""     # 空字符串
[]     # 空列表
()     # 空元組
set()  # 空集合
{}     # 空字典
None   # 空

擴展

強轉空數據時,默認轉換成當前數據類型的一個值

res = int() 
# 結果:0 <class 'int'>
print(res, type(res))

Number自動類型轉換

默認低精度向高精度進行轉換:bool -> int -> float -> complex

# bool + float
res = True  + 344.565 
# 1.0 + 344.565 = 345.565
print(res ,type(res)) 

# int + float
res = 5 + 7.88 
# 5.0 + 7.88 = 12.88
print(res ,type(res)) 

# float + complex 
res = 5.66 + 9.1 -90j 
# (5.66+0j) + (9.1-90j) = 14.76-90j
print(res ,type(res)) 

小數存在精度損耗問題,小數后面一般有時截取15~18位,但是不絕對


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM