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

[复制链接]
bigocean 发表于 2017-12-31 08:17:57 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
Python有哪些关键字?如何查找?; K: }. {/ j; }1 B; S: `$ }6 ~

8 y( x9 a! c! `% n4 J+ r& i- H: [6 [' F方法一:官网上当然能查到
+ s, \# w& T7 g, U+ k/ W官网截图
$ C1 o# V8 p& u4 g9 o$ a方法二:在python程序里面查找:
4 Z9 D! o$ l" X: _0 c% O程序中查找
3 y5 o& T' b5 q$ {总共33个关键字,接下来简单介绍和演示:' M5 Y* k4 I$ D" |# [  H& U& F2 k  s

# |9 B* `! m" }6 r. k
条件判断相关:% q+ ~5 V6 n6 f; {0 H$ z% s
if elif else and or is not in True False( D6 n; o& t- K) V, ]3 q
上面10个关键字非常简单,if elif else就是如果xx那么xx,如果yy那么yy,否则zz。4 [6 q1 [( I$ B$ x) V: ]& T
and or也是很容易理解的逻辑关系:真and真=真,真and假=假,真or假=真,假or假=假……太简单,就不废话了。0 i6 p0 i" Q& Y& l; u+ o
is not in True False从字面上就能知道意思,值得一提的是'is'和'=='的区别:- k$ j3 D0 F- f) K) c1 p! `
python中的对象都是有id的,'is'是比较id,即判断是否是同一个对象,而'=='是判断对象的值是否相同,举例说明:! Z0 a# L4 Q/ e$ l
4 \/ W( W6 O. f0 g, S+ X: {
>>> a = 1$ @! W' d3 R/ Z+ c  w& G
>>> b = 1.0
, [4 R5 `3 w5 r' I>>> print(a == b , a is b)
. i+ n) l" l9 HTrue False
. q/ i" e% c. q: C" N- T) I, i+ I1 Q>>> print(id(a),id(b))! d) z2 Z8 u& Z( u( \
1577329360 2519031456344% B1 C3 D% j3 H0 F( d
另外,在python里面,True和False是有值的,对应1和0,举例说明:$ c$ i; M2 `+ v8 U2 {
>>> print(True+False,True+True,True+3,False-2,True==1,False==0,True is 1,False is 0)5 ]6 W8 h6 _8 x  V
1 2 4 -2 True True False False
) b# y% Q) N# c- ?
一目了然吧?
( W6 X; \1 ]( \- B
. z+ D( e; p$ _' o/ j/ E接下来是和循环相关的关键字:
2 w" r; \# I; ^, p5 l1 m! }
for while break continue
" e- ^% W, t6 D
用一个列表解析式来演示for的使用:2 f& _/ h( c+ b4 k; C1 K
>>> a = [i for i in range(5)]
  |$ j$ R  L& a6 E0 A! q>>> a
# q3 z% P$ ~6 C1 \[0, 1, 2, 3, 4]& c/ n/ W/ z7 N6 A; j) E) F$ U2 _
while xx,直到条件xx不满足时才退出。比如常见的while True:,这种就是死循环,使用break可跳出循环。# F" k( E7 P6 T6 a' {8 B7 g% j
break和continue都和跳出循环有关,注意它们的差异,举例说明:
$ W' u0 l3 f/ t+ H3 F. i- ]
/ d, h1 y/ \3 x/ i5 A/ C- G( [- E跳出循环
2 X& g( o% a9 j如上图的代码所示,当i==3时,continue跳出了当前循环,没有继续执行下面的print(i)语句,但然后继续整个循环,因此打印的数字里面只缺失了3。使用break时,i==3直接退出循环,后面的数字4也就没打印了。' G; `( V& @! e( c" H# w/ J

7 {# {" d. z% N# \( n4 m0 C还有一些比较常用的关键字:( }. @, T' y$ }- x1 t, z& [% i

) k+ I$ x: N0 G6 h4 N2 J  Zdef ljds(): def是定义一个函数。) \8 J; A' l% {% ^' u' C# |

3 _5 [4 c5 d; tclass ljds(): class是定义一个类。
3 Y1 X" |4 w% _% h" q; ?' @" cpass :占位符,是个空语句,只是为了保证程序结构的完整性。(不完整会报错,所以加个pass放在那里喽)
$ q( S, f: L/ W4 D& Y: oNone:空对象。' ~# `/ G$ f# G5 \; _
importfrom、as都是导入模块使用的。举例说明:
9 d2 k5 b4 O2 \$ O- n, S: timport re:导入正则表示模块4 N& Y, M8 |- n! F( T5 t2 \
from bs4 import BeautifulSoup:导入bs4模块中的BeautifulSoup函数。
+ ]; c9 b) d9 a, H1 Uimport sys as ljds:导入sys模块,并重命名为ljds。
* t& c  {" ~, C, F, P4 X当然as不是只能用于导入模块,读写文件也是能用的,比如:
; V4 V$ X3 n' d3 |3 p7 ~, m" ?, mwith open('ljds.txt','w') as f:
* _! K* T+ u: [* N$ U" W! X& S2 R5 c& k- S2 P( P, ]8 K
try except finally raise assert关键字主要用于处理异常:try后面写可能出现异常的代码,在except中捕获异常。finally后的语句总会执行。raise用于引发异常。assert是断言语句。
: ?) O- w8 [/ Z  p: v) n* Jdel:举例说明:
9 @1 d" j$ d- g4 g
>>> a = ['ljds','Sean','Sting','Tom']
+ O! A- L6 ]0 r6 r" `8 @>>> del(a[0])( ]7 [2 o) P3 i# a! k% a5 h% ~2 q; g
>>> a
  [: C7 W$ R& h8 }['Sean', 'Sting', 'Tom']
" e! H3 [# V( z3 b) ?
returnyield,使用方法很相似,但差别还是比较大的。举例说明:
1 t# L+ f2 b9 f$ S5 ~, t. Y2 r9 }! K2 E! B6 ?
return) k: H+ `- A  O9 _& j+ t4 B. J

7 I3 e& k$ O2 t0 |6 N4 k+ syield, }0 Q- T& n" B! k( N
查看两个函数的类型:6 F0 a; V0 D& g
print(type(ljds1) , type(ljds2))
8 J1 l. _5 N. x5 S  N<class 'list'> <class 'generator'>* O) k) p; _7 I4 W/ E9 \0 [$ _7 Y
可以看出,一个是列表,一个是生成器。关于生成器不详细介绍了,只是说下它的优点是节省资源。列表把所有数据一次性加入内存,生成器是每次把一个数据放进内存……
) Y7 S1 F+ w+ v7 j9 h1 H6 jglobal:可以修改全局变量。举例说明:% n/ g# n2 Y+ y! s

2 M3 v' ^" d; Wglobal2 S5 i8 s% b! i
执行ljds()这个函数之前,a=2,执行函数后,在函数里修改了全局变量a,此时print(a)已经是4了。
" G% p* U' V2 b9 ]! W
0 l. ?/ k6 W  ]) ~4 B! G6 B% _nonlocal:用来在函数或其他作用域中使用外层变量。(这个关键字对我来说是最陌生的,根据定义我以为理解了,但实验出的结果令我很困惑,不在这里演示了……)
  B2 ~' T) L5 x6 u  y4 rlambda:匿名函数。举例说明:
5 J% M; L. Q: f4 l* C$ {; U  Z* u( h+ \) @
ljds = lambda arg : arg * 2
# X2 c) J$ ]: C$ l- tresult = ljds(5)
9 N/ I2 E$ S$ s4 R, \2 Zresult
1 J! E8 w  |  q4 {# k, Q3 GOut[87]: 10
5 X$ d! y* a- g, H6 `
本文只是对python关键字做的简单总结,没有做到每个关键字都举例,并且可能还有不严谨的地方,欢迎批评指正。, Y1 }0 h" z+ O3 F& Q
终于写完了,打把王者荣耀压压惊!

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

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

扫一扫关注我们

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