人生苦短祠够,我選Python
引言
前文傳送門
前面的文章中,我們介紹了基礎數據類型中最常用的數字和字符串闯传,不知道大家還記得什么是變量不?不記得變量也應該記得那被奶茶吧~~~都不記得自己去翻翻前面的文章吧尺栖。
變量
在 Python 中使用變量冒窍,有一個和 Java 最大的不同是無需先聲明,直接在賦值的時候就完成了聲明勇蝙。
如果我們直接使用一個沒有賦值的變量沫勿,會直接報錯。
print(name)
// 輸出結果:
Traceback (most recent call last):
File "D:/Development/Projects/python-learning/base-variable/Demo.py", line 2, in <module>
print(name)
NameError: name 'name' is not defined
錯誤信息是說我們的 name
變量未定義味混,如果我們先對 name
賦值产雹,這個變量就被定義了。
name = "小明"
print(name)
// 輸出結果:
小明
如果我們對這個變量再次進行賦值惜傲,新的賦值將會覆蓋之前的賦值洽故。
name = "小紅"
print(name)
// 輸出結果:
小紅
當然,如果我們不再需要這個變量盗誊,也可以通過 Python 提供的 del 來刪除這個變量时甚。
del name
print(name)
// 輸出結果:
Traceback (most recent call last):
File "D:/Development/Projects/python-learning/base-variable/Demo.py", line 2, in <module>
print(name)
NameError: name 'name' is not defined
每個變量在我們的程序當中都會占有一定的內存空間,那么內存空間不夠大的時候再新建變量豈不是要內存溢出哈踱?理論上來講是會出現(xiàn)這種情況荒适,但是 Python 提供了自動辣雞回收機制,我們不用的辣雞變量开镣, Python 是會幫我們自己動回收掉的刀诬。
但是,在極端情況下邪财,我們所有需要使用的變量超出當前的內存空間怎么辦陕壹?emmmmmmm
這個就需要用錢來解決了,加點內存它不香么树埠。
變量類型轉換
在某些情況下糠馆,我們的變量需要參加運算,如果變量類型不同會怎么樣呢怎憋?
如果我們要使用一個字符串加上一個整形會怎么樣呢又碌?
print('123' + 123)
// 輸出結果:
Traceback (most recent call last):
File "D:/Development/Projects/python-learning/base-variable/Demo.py", line 17, in <module>
print('123' + 123)
TypeError: can only concatenate str (not "int") to str
這句報錯含義是告訴我們字符串只能連接一個字符串,并不能連接一個整形绊袋。
這里我們先寫的是字符串毕匀,系統(tǒng)默認是做字符串連接操作,但是系統(tǒng)執(zhí)行到后面發(fā)現(xiàn)并不是一個字符串癌别,系統(tǒng)直接就原地炸了:說好的字符串呢皂岔?
這時如果我們想要正常運行怎么辦呢?
如果僅僅只是要程序不報錯规个,有兩種解決方案:
- 將字符串強成整形凤薛,結果會是一個整形
- 將整形轉成字符串姓建,執(zhí)行字符串拼接操作
當然,這里涉及到了類型強制轉換缤苫。
float() 函數速兔,將其他類型數據轉為浮點數
str() 函數,將其他類型數據轉為字符串
int() 函數活玲,將其他類型數據轉為整型
那么上面的報錯我們就有了以下解決方案:
print('123' + str(123))
// 輸出結果:
123123
print(int('123') + 123)
// 輸出結果:
246
那么新的問題來了涣狗,如果是一個整形和一個浮點數想加最終會得到什么類型呢?
這里涉及到了一個新的知識點舒憾,叫做類型提升
print(123.5 + 123)
// 輸出結果:
246.5
那么如果一個浮點型強轉成整形又會怎么樣呢镀钓?
print(int(123.7))
// 輸出結果:
123
從示例中,可以看出強制類型降級時镀迂,會直接抹去末尾小數丁溅,這里并不會做四舍五入哦~~~
如果想使用四舍五入的方式,有一種比較簡易的方式探遵,加 0.5 窟赏,如下示例:
print(int(123.7 + 0.5))
// 輸出結果:
124
這么寫有點不是那么優(yōu)雅,我們還可以借助函數 round() 來實現(xiàn)箱季。
print(int(round(123.4)))
// 輸出結果:
123
print(int(round(123.5)))
// 輸出結果:
124
示例代碼
本系列的所有代碼小編都會放在代碼管理倉庫 Github 和 Gitee 上涯穷,方便大家取用。