「python」33个Python关键字的简单总结

[复制链接]
bigocean 发表于 2017-12-31 08:17:57 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
Python有哪些关键字?如何查找?! d3 a4 [% ~, q& Q5 ]& ?
  y( P. P" ~3 F  V( V. @" [% K
方法一:官网上当然能查到: L; R( J5 @4 A( ]( v# W
官网截图1 u. i$ [/ A4 D+ p; [- O
方法二:在python程序里面查找:' B3 w# {% B6 A- x
程序中查找
) z- e% M& a- |' C总共33个关键字,接下来简单介绍和演示:0 x8 A; A6 A* e0 h  J" K9 h

5 m4 {0 t1 x' L# X0 M# j
条件判断相关:
: U3 B+ ~) i. M7 |9 L) \5 f! m5 m6 l' yif elif else and or is not in True False9 E0 j  \, J8 c+ H' }& X9 N' {
上面10个关键字非常简单,if elif else就是如果xx那么xx,如果yy那么yy,否则zz。8 U8 l" u7 A% `
and or也是很容易理解的逻辑关系:真and真=真,真and假=假,真or假=真,假or假=假……太简单,就不废话了。7 x! u& J% `2 P
is not in True False从字面上就能知道意思,值得一提的是'is'和'=='的区别:
/ u1 @2 ]; L$ B$ w7 zpython中的对象都是有id的,'is'是比较id,即判断是否是同一个对象,而'=='是判断对象的值是否相同,举例说明:2 R# {* T' ]+ l/ L

1 c2 ~+ S9 V; J6 P8 S6 M$ }. g
>>> a = 1
$ U, E. M' V6 p>>> b = 1.0
0 _4 f* D& Z, y0 {) i>>> print(a == b , a is b)% U" Y. `: m* Z
True False
$ @# l0 p5 m# x4 ~" `  _: I>>> print(id(a),id(b))9 v* Z& r% \# c! x
1577329360 2519031456344, A& D( e0 O( O+ l
另外,在python里面,True和False是有值的,对应1和0,举例说明:
2 n& @1 m; n. z7 g8 E; r
>>> print(True+False,True+True,True+3,False-2,True==1,False==0,True is 1,False is 0)
6 Q: ?! F5 x# C' H) ]& \; I1 2 4 -2 True True False False
' u4 q: N* q, n& h7 }8 Z
一目了然吧?; u6 L! c- h: x/ K; W6 o# V: c
& z: l+ M7 p& I" [& f- E. \
接下来是和循环相关的关键字:. \# U. a$ ]) ^4 P, @
for while break continue# s! \' R4 e. W8 M9 l$ H4 w
用一个列表解析式来演示for的使用:2 m5 z0 e! d2 e8 T+ v% U+ F
>>> a = [i for i in range(5)]
0 X& u+ {( h# f( \" N* F>>> a# [4 G; V: [% I$ @% N4 H
[0, 1, 2, 3, 4]
& v: i( |0 g# P5 X1 }: T9 \
while xx,直到条件xx不满足时才退出。比如常见的while True:,这种就是死循环,使用break可跳出循环。
6 O0 n8 K, R. x( n) @8 T+ Kbreak和continue都和跳出循环有关,注意它们的差异,举例说明:  R3 r0 D3 e5 z: L4 f
2 K1 g2 X) b- @
跳出循环! t1 z% \& N; H$ T& A8 _
如上图的代码所示,当i==3时,continue跳出了当前循环,没有继续执行下面的print(i)语句,但然后继续整个循环,因此打印的数字里面只缺失了3。使用break时,i==3直接退出循环,后面的数字4也就没打印了。! p" H1 i' L* f+ e3 t
7 P5 s5 E* K4 S. ]% K$ C6 I7 Q# f
还有一些比较常用的关键字:0 }. K# ]/ z, R/ X3 z; e
' N2 F1 ^$ s; l
def ljds(): def是定义一个函数。. o- n# d% b6 I- ^

. F: O1 p  F* ~9 lclass ljds(): class是定义一个类。
2 \; h( T; I0 {  {pass :占位符,是个空语句,只是为了保证程序结构的完整性。(不完整会报错,所以加个pass放在那里喽). F4 A" o- ?& y% W- w4 g" O
None:空对象。5 ~0 H' L8 R6 P: u
importfrom、as都是导入模块使用的。举例说明:
) V  F1 V5 L3 x; oimport re:导入正则表示模块
$ a, ]/ J, l  ^6 |; H+ j2 O( ffrom bs4 import BeautifulSoup:导入bs4模块中的BeautifulSoup函数。
5 H0 T! m. @- |% q6 gimport sys as ljds:导入sys模块,并重命名为ljds。2 {' U. c+ d! J! c" Q8 N& N
当然as不是只能用于导入模块,读写文件也是能用的,比如:
, \3 k) K( [9 M; Z8 y, Y# qwith open('ljds.txt','w') as f:' S5 g: \- b. @( K3 U" i) f
( f' u0 E" ?5 Z' X
try except finally raise assert关键字主要用于处理异常:try后面写可能出现异常的代码,在except中捕获异常。finally后的语句总会执行。raise用于引发异常。assert是断言语句。6 P2 x7 F+ F2 C( ^6 f1 w
del:举例说明:
1 v& ~% b% z4 v7 f% x( R( I$ n) p- q
>>> a = ['ljds','Sean','Sting','Tom']" I! Y9 Q3 x7 s2 x
>>> del(a[0])
" O$ f9 Q4 f3 h, k>>> a
! {2 l  L- ]/ M9 J( C# x['Sean', 'Sting', 'Tom']
4 w) S3 \& G1 f
returnyield,使用方法很相似,但差别还是比较大的。举例说明:' ~& d8 I* w% ]9 R

; d3 D9 M: \2 T; r9 ^8 {2 y( f5 @return3 Y; u; P# m3 w8 I2 y
. N! s& O/ N  ^: _- c/ F7 E
yield5 P5 E% I: @. Z+ P2 Y
查看两个函数的类型:' ^# w% |1 K; ~
print(type(ljds1) , type(ljds2))6 k! B" v/ Y2 D3 s5 _+ j' Y4 H
<class 'list'> <class 'generator'>+ m: H% z: h" G* q$ X+ W
可以看出,一个是列表,一个是生成器。关于生成器不详细介绍了,只是说下它的优点是节省资源。列表把所有数据一次性加入内存,生成器是每次把一个数据放进内存……
( z) G3 o; L+ D0 {global:可以修改全局变量。举例说明:7 j, M8 R) c% G& P! w; z
9 P  H! g/ K" q  o) W
global7 {. _+ H$ E+ s& Z' D4 p$ P1 ^+ B
执行ljds()这个函数之前,a=2,执行函数后,在函数里修改了全局变量a,此时print(a)已经是4了。
! I) ^/ ?9 k3 c' N" w0 f9 [- m3 k3 M; L
nonlocal:用来在函数或其他作用域中使用外层变量。(这个关键字对我来说是最陌生的,根据定义我以为理解了,但实验出的结果令我很困惑,不在这里演示了……); y8 ?5 h' ]3 \
lambda:匿名函数。举例说明:6 \+ d5 I' E. s9 V1 o

+ A" M7 g, `0 h: @+ Z
ljds = lambda arg : arg * 2$ j0 Z2 A. S% D6 I) D+ D
result = ljds(5)
3 ^6 z. Q+ n8 s& ^" J. Uresult  K1 n. p) h- E: t
Out[87]: 106 _$ K$ v' [! J6 X- ?
本文只是对python关键字做的简单总结,没有做到每个关键字都举例,并且可能还有不严谨的地方,欢迎批评指正。
# s  I9 r! J  J0 n, M终于写完了,打把王者荣耀压压惊!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
推荐阅读更多+
阅读排行更多+
用心服务创业者
0851-88611148
周一至周五 9:00-18:00
意见反馈:admin@0851life.com

扫一扫关注我们

Powered by 童码少儿编程 X3.4© 2001-2013 0851life Inc.|网站地图