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

[复制链接]
bigocean 发表于 2017-12-31 08:17:57 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
Python有哪些关键字?如何查找?
! e% b; `' j5 a( G7 p/ a% I2 F6 l2 k2 R. N8 a
方法一:官网上当然能查到
' f# }/ I( A- V! g' q官网截图/ q) E7 h/ i5 S' u, g
方法二:在python程序里面查找:0 d6 t8 ^! b( C2 h) P; Y3 P
程序中查找7 Y7 t2 n  a1 @( B2 h: |# ?
总共33个关键字,接下来简单介绍和演示:( ]& k/ g% C" V+ f
7 e. ~9 F. B  w) V
条件判断相关:
6 Y1 R: z" i# |) [if elif else and or is not in True False; w6 L4 n% S* t( _" e) j
上面10个关键字非常简单,if elif else就是如果xx那么xx,如果yy那么yy,否则zz。
1 Y3 i3 b  I1 F2 a& sand or也是很容易理解的逻辑关系:真and真=真,真and假=假,真or假=真,假or假=假……太简单,就不废话了。
+ f' k# B# @8 q* p, H9 z; ais not in True False从字面上就能知道意思,值得一提的是'is'和'=='的区别:7 Q% R0 G4 A% x" I2 F
python中的对象都是有id的,'is'是比较id,即判断是否是同一个对象,而'=='是判断对象的值是否相同,举例说明:. w0 `( `" `6 r  d2 \# t, R
' D/ F) X  ~) F- P7 V3 h
>>> a = 1
0 n) t+ U4 F+ n0 A- j>>> b = 1.0
3 \, Y+ L4 z/ v1 W- O>>> print(a == b , a is b)0 W2 I$ `) `; [; r. H
True False5 z. f) [! [6 c4 C" X4 c" c
>>> print(id(a),id(b))- h/ N! _2 v  o+ j! H
1577329360 2519031456344! p/ i" z) K7 B/ ~, C( ^
另外,在python里面,True和False是有值的,对应1和0,举例说明:
. }) |* j  _/ e& K: k
>>> print(True+False,True+True,True+3,False-2,True==1,False==0,True is 1,False is 0): i! m# @4 E/ G; b
1 2 4 -2 True True False False
3 h0 M, ]7 W$ X; {+ b9 x: }
一目了然吧?
" b6 M$ ^/ Z% t0 m+ X" _, r* A0 Q0 T7 e8 ?4 U2 a
接下来是和循环相关的关键字:
7 }2 K1 y& z# {& K2 [( B
for while break continue
/ x3 D& T1 H* w: h
用一个列表解析式来演示for的使用:' `# ^6 Q. x4 r0 d: R) U
>>> a = [i for i in range(5)]4 Q/ G- q3 ~7 |: X: h# H4 m
>>> a
, l$ ^' {  k+ @- k[0, 1, 2, 3, 4]6 n# J4 }  |6 r
while xx,直到条件xx不满足时才退出。比如常见的while True:,这种就是死循环,使用break可跳出循环。. |8 H- s6 }% u; n4 h2 i. m+ G
break和continue都和跳出循环有关,注意它们的差异,举例说明:
! F5 L  A. c1 m1 o+ [: Q  R, H
4 N: J! R2 e2 }跳出循环! Y$ b3 s! X- S" r5 h& ]& p
如上图的代码所示,当i==3时,continue跳出了当前循环,没有继续执行下面的print(i)语句,但然后继续整个循环,因此打印的数字里面只缺失了3。使用break时,i==3直接退出循环,后面的数字4也就没打印了。2 m- g% r1 d4 @0 Y

4 P# O( y. y1 w# G2 q; Z! `! \还有一些比较常用的关键字:1 l1 S0 a0 s5 n1 _" r

+ i% y- @1 \  G! Wdef ljds(): def是定义一个函数。
5 f: c, z6 J) N4 K3 w) z1 g
+ J) |6 n/ j( Fclass ljds(): class是定义一个类。  O% g2 x+ N0 E) N# I' L
pass :占位符,是个空语句,只是为了保证程序结构的完整性。(不完整会报错,所以加个pass放在那里喽)
4 W# F* g0 Z' I- [None:空对象。
! |+ ]2 T3 }# k" gimportfrom、as都是导入模块使用的。举例说明:
3 ?, @( g" G4 Iimport re:导入正则表示模块
, i, L! M7 }( a6 Z7 X2 {7 ~( xfrom bs4 import BeautifulSoup:导入bs4模块中的BeautifulSoup函数。4 y- v5 }  c6 M  ]5 s6 n
import sys as ljds:导入sys模块,并重命名为ljds。3 g- k% o' b  X6 f. b% F4 E
当然as不是只能用于导入模块,读写文件也是能用的,比如:
% T) Y) s% N6 t; \# O4 Lwith open('ljds.txt','w') as f:
# r- r1 c/ P/ E$ ^( h1 E0 f% Z7 B: W2 o6 J5 G
try except finally raise assert关键字主要用于处理异常:try后面写可能出现异常的代码,在except中捕获异常。finally后的语句总会执行。raise用于引发异常。assert是断言语句。
; l4 W% Y, K+ _- g: mdel:举例说明:; j' X" \" U. ~1 M: w' J* [8 P
>>> a = ['ljds','Sean','Sting','Tom']
& `* m* ]0 D9 b8 F( }>>> del(a[0])! w; E  w8 q5 A6 {; ?0 V1 N) m
>>> a4 H% Z2 P) ~  J
['Sean', 'Sting', 'Tom']
! S/ h! R7 |, R5 }2 Y( q7 T/ X
returnyield,使用方法很相似,但差别还是比较大的。举例说明:
6 j4 d: q' K/ z* O: z6 Q  I7 U2 v* L/ f& a. B
return
1 u0 q3 f$ e  @8 Q5 S0 r9 [( Y$ J% S
+ q4 p0 D' ]+ @yield
' w* {: Y, N- a% k查看两个函数的类型:
5 v6 p; A7 p3 W+ C/ R9 h6 E
print(type(ljds1) , type(ljds2))
" v% d; _) i6 ?) F( Y$ R<class 'list'> <class 'generator'>
, M6 f9 \  L) @1 s# Y" H
可以看出,一个是列表,一个是生成器。关于生成器不详细介绍了,只是说下它的优点是节省资源。列表把所有数据一次性加入内存,生成器是每次把一个数据放进内存……
7 t* i4 y4 P2 Pglobal:可以修改全局变量。举例说明:
7 c$ c- H9 ^  ?
+ p/ t& y4 K8 w; W+ Q: mglobal$ R$ A" `7 \2 E3 \" ~5 ~
执行ljds()这个函数之前,a=2,执行函数后,在函数里修改了全局变量a,此时print(a)已经是4了。0 \- Q6 r9 m0 H# ^8 D- I

1 A" }" |6 t+ L4 I' t7 ynonlocal:用来在函数或其他作用域中使用外层变量。(这个关键字对我来说是最陌生的,根据定义我以为理解了,但实验出的结果令我很困惑,不在这里演示了……); I: o7 @" h2 w. e! e# Y* ^8 N1 X. p
lambda:匿名函数。举例说明:
5 b" j* O( Q! j8 ?
+ K  @9 ^0 `$ I& y3 I
ljds = lambda arg : arg * 2
1 c8 T0 K4 [! N% j0 A2 [0 Bresult = ljds(5)
7 T1 }- `3 q0 v5 G8 c; k/ cresult* j8 ?) M0 {, ]- N2 T3 ^
Out[87]: 10. G: T: _& j2 w8 l4 ?7 _6 I
本文只是对python关键字做的简单总结,没有做到每个关键字都举例,并且可能还有不严谨的地方,欢迎批评指正。
. x+ A# y6 B: m9 p* C& r终于写完了,打把王者荣耀压压惊!

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

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

扫一扫关注我们

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