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