類型不同怎么計算?
大家好,歡迎來到 Crossin的編程教室 !
在 Python 中,每個數(shù)據(jù)都有明確的類型。最常見的數(shù)據(jù)類型有:
str - 字符串
int - 整數(shù)
float - 浮點數(shù),也就是小數(shù)
bool - 布爾類型,一種用來表示真與假兩種邏輯狀態(tài)的類型
還有一些復(fù)合數(shù)據(jù)類型,比如:
list - 列表
dict - 字典
tuple - 元組
有些數(shù)據(jù)雖然“看起來”差不多,但如果類型不同,可以執(zhí)行的操作也就不相同。
比如通過 input 獲取到的輸入一律是 str 字符串類型。
即使用戶輸入一個數(shù)字,比如 3,但程序拿到的是一個字符串 3,而不是數(shù)字 3,它和數(shù)字 1 不能直接進行加法運算,否則就會報錯。

如果想要對獲取到的數(shù)值進行數(shù)學(xué)運算,常用的解決辦法就是做一次類型轉(zhuǎn)換,讓程序知道它是一個數(shù)字。
數(shù)據(jù)類型雖然增加了限制,但讓程序可以將數(shù)據(jù)與合適的操作相匹配,減少了程序出錯的可能。即使有些語言不做強制的類型檢查,但程序在存儲數(shù)據(jù)時依舊需要按照某種類型的格式來進行,比如字符 3 和數(shù)字 3 對于計算機來說就是不同數(shù)據(jù),沒法按照同樣的方式來存儲。只不過這些語言會在使用時嘗試把它轉(zhuǎn)成可用的類型。這樣在開發(fā)時更靈活,但也隱藏了風(fēng)險。
一個冷知識:之前小破站崩潰3小時,就是因為一個字符串 0 和數(shù)字 0 的誤用。(lua語言不會對類型做強制檢查,當(dāng) b 為字符 '0' 或者?nan?時程序都可以正常運行,但不會進入 if 返回,于是陷入死循環(huán))

另外,也不是類型不同就一定不能放一起做計算,有些計算就是在特定的類型之間進行的。比如字符串和數(shù)字可以做乘法:
結(jié)果:
對于 Python 的類型,你還要什么想了解的內(nèi)容?歡迎在留言區(qū)討論。
