「python」33個Python關鍵字的簡單總結
Python有哪些關鍵字?如何查找?
方法一:官網上當然能查到
方法二:在python程序裡面查找:
總共33個關鍵字,接下來簡單介紹和演示:
條件判斷相關:
if elif else and or is not in True False
上面10個關鍵字非常簡單,if elif else就是如果xx那麼xx,如果yy那麼yy,否則zz。
and or也是很容易理解的邏輯關係:真and真=真,真and假=假,真or假=真,假or假=假……太簡單,就不廢話了。
is not in True False從字面上就能知道意思,值得一提的是'is'和'=='的區別:
python中的對象都是有id的,'is'是比較id,即判斷是否是同一個對象,而'=='是判斷對象的值是否相同,舉例說明:
Advertisements
>>> a = 1
>>> b = 1.0
>>> print(a == b , a is b)
True False
>>> print(id(a),id(b))
1577329360 2519031456344
另外,在python裡面,True和False是有值的,對應1和0,舉例說明:
>>> print(True+False,True+True,True+3,False-2,True==1,False==0,True is 1,False is 0)
1 2 4 -2 True True False False
一目了然吧?
Advertisements
接下來是和循環相關的關鍵字:
for while break continue
用一個列表解析式來演示for的使用:
>>> a = [i for i in range(5)]
>>> a
[0, 1, 2, 3, 4]
while xx,直到條件xx不滿足時才退出。比如常見的while True:,這種就是死循環,使用break可跳出循環。
break和continue都和跳出循環有關,注意它們的差異,舉例說明:
如上圖的代碼所示,當i==3時,continue跳出了當前循環,沒有繼續執行下面的print(i)語句,但然後繼續整個循環,因此列印的數字裡面只缺失了3。使用break時,i==3直接退出循環,後面的數字4也就沒列印了。
還有一些比較常用的關鍵字:
def ljds(): def是定義一個函數。
class ljds(): class是定義一個類。
pass :佔位符,是個空語句,只是為了保證程序結構的完整性。(不完整會報錯,所以加個pass放在那裡嘍)
None:空對象。
import、from、as都是導入模塊使用的。舉例說明:
import re:導入正則表示模塊
from bs4 import BeautifulSoup:導入bs4模塊中的BeautifulSoup函數。
import sys as ljds:導入sys模塊,並重命名為ljds。
當然as不是只能用於導入模塊,讀寫文件也是能用的,比如:
with open('ljds.txt','w') as f:
try except finally raise assert關鍵字主要用於處理異常:try後面寫可能出現異常的代碼,在except中捕獲異常。finally后的語句總會執行。raise用於引發異常。assert是斷言語句。
del:舉例說明:
>>> a = ['ljds','Sean','Sting','Tom']
>>> del(a[0])
>>> a
['Sean', 'Sting', 'Tom']
return和yield,使用方法很相似,但差別還是比較大的。舉例說明:
查看兩個函數的類型:
print(type(ljds1) , type(ljds2))
<class 'list'> <class 'generator'>
可以看出,一個是列表,一個是生成器。關於生成器不詳細介紹了,只是說下它的優點是節省資源。列表把所有數據一次性加入內存,生成器是每次把一個數據放進內存……
global:可以修改全局變數。舉例說明:
執行ljds()這個函數之前,a=2,執行函數后,在函數里修改了全局變數a,此時print(a)已經是4了。
nonlocal:用來在函數或其他作用域中使用外層變數。(這個關鍵字對我來說是最陌生的,根據定義我以為理解了,但實驗出的結果令我很困惑,不在這裡演示了……)
lambda:匿名函數。舉例說明:
ljds = lambda arg : arg * 2
result = ljds(5)
result
Out[87]: 10
本文只是對python關鍵字做的簡單總結,沒有做到每個關鍵字都舉例,並且可能還有不嚴謹的地方,歡迎批評指正。
終於寫完了,打把王者榮耀壓壓驚!