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

[复制链接]
bigocean 发表于 2017-12-31 08:17:57 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
Python有哪些关键字?如何查找?
7 z; @  w$ p" N$ y. [3 k2 f2 n( \* W. C0 G7 X) r0 h! g
方法一:官网上当然能查到
3 I  j8 C% ]8 ]3 q5 J& Q  s官网截图2 U* I4 t* Z$ @5 t
方法二:在python程序里面查找:
/ |7 e5 F, x* }# p1 F程序中查找
  o% C) o3 O0 p2 ]总共33个关键字,接下来简单介绍和演示:
, J" }: b0 i3 `. d% z, v; g9 i( O$ h: |7 Z8 q7 ~# L
条件判断相关:) w( p4 ]; P8 \2 {" e% b
if elif else and or is not in True False
" q& N, S1 h5 B' h4 w
上面10个关键字非常简单,if elif else就是如果xx那么xx,如果yy那么yy,否则zz。
2 M5 J; y+ A1 X' |and or也是很容易理解的逻辑关系:真and真=真,真and假=假,真or假=真,假or假=假……太简单,就不废话了。. j( Y3 a' W/ U! R9 I, `
is not in True False从字面上就能知道意思,值得一提的是'is'和'=='的区别:
% f) F& d/ G! M9 L% V( zpython中的对象都是有id的,'is'是比较id,即判断是否是同一个对象,而'=='是判断对象的值是否相同,举例说明:
4 Y% D% {1 a1 ~0 K9 y6 I/ f; u0 W& x3 p
>>> a = 1# J: O" \6 Y. {! r! d8 m
>>> b = 1.0  ~& V6 Y. I# u/ X
>>> print(a == b , a is b)
1 E0 q7 u, \0 FTrue False
) @. [3 {: Z2 i; s' D% e; U>>> print(id(a),id(b))8 H' o4 E1 ^# }! [. k
1577329360 2519031456344) ]/ C/ n6 k4 S' h. V
另外,在python里面,True和False是有值的,对应1和0,举例说明:
1 f( L* q8 h" e7 z; [6 v3 m
>>> print(True+False,True+True,True+3,False-2,True==1,False==0,True is 1,False is 0)7 e# V  z( A# t9 @/ M
1 2 4 -2 True True False False
! {! ~  E. [: ?$ d
一目了然吧?
$ Q5 R2 r% D1 z5 [! X
$ z7 m/ q; V. T5 N+ ?# a接下来是和循环相关的关键字:
; {6 j* Q/ n/ w- P$ K
for while break continue, p  S+ u5 k. Y1 ?# p! `
用一个列表解析式来演示for的使用:; Z/ j3 t5 r/ V# Z' Q& x
>>> a = [i for i in range(5)]
0 Q+ O4 X5 \; y* m>>> a
+ n& V0 c( Q8 P1 J[0, 1, 2, 3, 4]
- [7 Z( }  w' T' h) `# U9 H
while xx,直到条件xx不满足时才退出。比如常见的while True:,这种就是死循环,使用break可跳出循环。
8 M1 I# T9 u( B& W* ]4 e1 n3 @break和continue都和跳出循环有关,注意它们的差异,举例说明:' q4 p4 _' c) K6 s, k- ?2 b
! d& ^, E7 k9 C' M
跳出循环
! _; a2 N1 I* I$ ?) j$ A: J( F如上图的代码所示,当i==3时,continue跳出了当前循环,没有继续执行下面的print(i)语句,但然后继续整个循环,因此打印的数字里面只缺失了3。使用break时,i==3直接退出循环,后面的数字4也就没打印了。6 I* ~% s" _3 _

- j' ?' v' M- b4 l; a/ X3 y还有一些比较常用的关键字:
* |* G7 h6 y' o$ Q& g0 {% v* U, A) s5 U$ R7 j7 t
def ljds(): def是定义一个函数。; z0 _! }. R( l) a+ b4 H. V

- J+ j0 T4 o9 {8 B3 oclass ljds(): class是定义一个类。
) y7 W5 Z; A& f( w: k7 }% N7 l2 @pass :占位符,是个空语句,只是为了保证程序结构的完整性。(不完整会报错,所以加个pass放在那里喽)
* p; I; a. q! ^  B! ~# z& U5 zNone:空对象。8 v4 U5 q' y  Y  I$ z
importfrom、as都是导入模块使用的。举例说明:; U1 i6 s" r; }
import re:导入正则表示模块* `) I1 z* E* K3 y
from bs4 import BeautifulSoup:导入bs4模块中的BeautifulSoup函数。$ Y! c, I" |3 B2 u
import sys as ljds:导入sys模块,并重命名为ljds。
1 @/ Y; J) h2 n4 v$ v( R  D: P当然as不是只能用于导入模块,读写文件也是能用的,比如:2 X2 {0 C( u/ y7 a4 G
with open('ljds.txt','w') as f:
& L, w% y6 m4 k" T; D5 y* x3 J$ T$ `! D5 x( c! W2 H* n: y5 ]4 Y
try except finally raise assert关键字主要用于处理异常:try后面写可能出现异常的代码,在except中捕获异常。finally后的语句总会执行。raise用于引发异常。assert是断言语句。1 a+ A8 n5 z% h4 T6 G# F  i7 G
del:举例说明:. o, B! e, M1 l; Y5 `; ]
>>> a = ['ljds','Sean','Sting','Tom']* t2 E6 `% O! N: ^% D3 `! C
>>> del(a[0])
; X8 Q6 t, e$ Q% W>>> a
0 W3 O7 X) \* a5 ]7 e) V0 D" t['Sean', 'Sting', 'Tom']
4 W+ M  W9 A& s, t0 ?
returnyield,使用方法很相似,但差别还是比较大的。举例说明:
/ X' N3 @* T" L5 H
& v- B8 x5 g; {. B' o; ~7 Q2 zreturn* I* }; w8 {+ N8 y+ q: J

  h  K# q* q; ?yield7 C7 N0 p) `  B8 H8 r0 _
查看两个函数的类型:3 T% o1 g/ [; a  {
print(type(ljds1) , type(ljds2))
4 S& `& M1 Y: V- C9 V2 ?  F5 h4 e" x<class 'list'> <class 'generator'>( ~( ?- t7 e2 j! V8 a
可以看出,一个是列表,一个是生成器。关于生成器不详细介绍了,只是说下它的优点是节省资源。列表把所有数据一次性加入内存,生成器是每次把一个数据放进内存……
  [7 q  `+ R' }7 Hglobal:可以修改全局变量。举例说明:
8 C3 v4 E6 S4 `* {( K
( n) B& S- G3 s& N) w" f0 v$ hglobal
# e7 t$ f6 g" t2 R) O! D' Y执行ljds()这个函数之前,a=2,执行函数后,在函数里修改了全局变量a,此时print(a)已经是4了。
- E$ x8 e" Y% H* a* S& a6 o4 p, F3 D( L- D& A$ M
nonlocal:用来在函数或其他作用域中使用外层变量。(这个关键字对我来说是最陌生的,根据定义我以为理解了,但实验出的结果令我很困惑,不在这里演示了……)
; @, a. E0 p3 _2 tlambda:匿名函数。举例说明:
5 K" C; e4 f! Z) ~- [' O$ q9 P' |' z2 r
ljds = lambda arg : arg * 2
/ A, R: h  c5 ^" K6 D% P3 L! Xresult = ljds(5)
( q3 }' R* j9 |# C! Z: wresult* I0 Y! A# z" w4 }0 O4 W
Out[87]: 10, E$ ]) a9 V, q( D+ M8 }
本文只是对python关键字做的简单总结,没有做到每个关键字都举例,并且可能还有不严谨的地方,欢迎批评指正。  \) }7 H+ k  s8 ^+ `  W/ l
终于写完了,打把王者荣耀压压惊!

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

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

扫一扫关注我们

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