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

[复制链接]
bigocean 发表于 2017-12-31 08:17:57 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
Python有哪些关键字?如何查找?
; {7 j. I6 V3 ?9 x- ~' w# g5 E( Y8 h6 E: X; z' y* U6 d5 L
方法一:官网上当然能查到' d' `7 S0 `, F! G- N- W4 F
官网截图
3 f1 a  M+ h) A3 V方法二:在python程序里面查找:/ t2 x2 b* g% X( R5 S4 V4 y
程序中查找
9 N, p) B, m9 Q9 x8 l总共33个关键字,接下来简单介绍和演示:6 l" \' W; h8 B8 L4 G

3 n# g& m8 n( A" M+ m
条件判断相关:
" {2 k4 D- @: \" n, j& H* dif elif else and or is not in True False2 D7 l$ Z) u' _) `
上面10个关键字非常简单,if elif else就是如果xx那么xx,如果yy那么yy,否则zz。
+ _3 C/ T# z  _5 O$ Pand or也是很容易理解的逻辑关系:真and真=真,真and假=假,真or假=真,假or假=假……太简单,就不废话了。+ k" p0 B# H& I
is not in True False从字面上就能知道意思,值得一提的是'is'和'=='的区别:
$ Q; Y5 ?! y% u1 v9 K$ o' Upython中的对象都是有id的,'is'是比较id,即判断是否是同一个对象,而'=='是判断对象的值是否相同,举例说明:
2 x3 Q0 A5 [' j2 ~7 f- @$ Y
6 C9 O0 O6 }3 d# l- c
>>> a = 1
1 z3 m7 ?% E6 Y9 X2 Z: c4 v# p7 k>>> b = 1.0) g4 D) e* q+ A3 |8 L8 x
>>> print(a == b , a is b)
. u7 |9 r" C7 x# }- ITrue False
$ J; x& Y( x2 ~( E>>> print(id(a),id(b))+ k& e2 z6 t/ X) @
1577329360 2519031456344' X  A# v3 Y- H9 M+ N& Z
另外,在python里面,True和False是有值的,对应1和0,举例说明:0 R1 S( H) {% Z: [' Y$ S+ E. K
>>> print(True+False,True+True,True+3,False-2,True==1,False==0,True is 1,False is 0); p; K) J+ u) Q: `% Z- D
1 2 4 -2 True True False False
. t  L, e9 E( e5 ~9 K. T
一目了然吧?
5 T: m( i# h3 A& A0 G. A+ X
% `0 i# D: r7 R+ g' R7 @: ]5 w0 W6 ?接下来是和循环相关的关键字:( c* E$ Z& ]" ?( m' r3 I% j9 u! e
for while break continue/ C  ~  O. K* c0 G9 R
用一个列表解析式来演示for的使用:3 `. k# z: B, U' G
>>> a = [i for i in range(5)]
5 ]. M, \0 l! S, d>>> a
5 C8 L9 J( k/ }& s- X; l[0, 1, 2, 3, 4]/ r- f3 b. A" F: x
while xx,直到条件xx不满足时才退出。比如常见的while True:,这种就是死循环,使用break可跳出循环。7 E9 h+ o& i  Y* p5 ?$ w9 j
break和continue都和跳出循环有关,注意它们的差异,举例说明:
$ K  C9 x) L/ ?) W" C
; o! }- g3 M% p* e" u# X3 R2 T跳出循环
1 W- x5 c  W" f9 f  k3 [如上图的代码所示,当i==3时,continue跳出了当前循环,没有继续执行下面的print(i)语句,但然后继续整个循环,因此打印的数字里面只缺失了3。使用break时,i==3直接退出循环,后面的数字4也就没打印了。
0 G% P* s' ~0 R8 k+ t( M. ^2 t& k1 c9 j7 o; |3 s
还有一些比较常用的关键字:
/ }) N7 @! h' |0 q) }, [5 F5 d3 h! a1 ~7 I
def ljds(): def是定义一个函数。
8 R4 z8 s. {  A
: _7 {5 X4 s% f7 j9 b" K$ Dclass ljds(): class是定义一个类。0 ^+ b. \$ D$ _% N) I
pass :占位符,是个空语句,只是为了保证程序结构的完整性。(不完整会报错,所以加个pass放在那里喽)' k* P7 g0 n8 j& P
None:空对象。
, P. E! B1 ?( C( R$ A4 B5 wimportfrom、as都是导入模块使用的。举例说明:1 M7 f" C4 x' @9 {4 Y* v$ N
import re:导入正则表示模块
+ I$ z: m& h6 c. \from bs4 import BeautifulSoup:导入bs4模块中的BeautifulSoup函数。
3 G' ?$ b% W, A9 x: Z  I9 U* ^import sys as ljds:导入sys模块,并重命名为ljds。0 ~  x5 `% V1 ?, ^7 q, c+ b5 F
当然as不是只能用于导入模块,读写文件也是能用的,比如:+ O2 H3 S6 `( q% E6 c0 S
with open('ljds.txt','w') as f:
* x9 e* l, P2 `# J1 \8 f) _7 L
$ [: ~! W, }' u( itry except finally raise assert关键字主要用于处理异常:try后面写可能出现异常的代码,在except中捕获异常。finally后的语句总会执行。raise用于引发异常。assert是断言语句。7 c  m, X5 R- [% G5 ~) ^
del:举例说明:/ V4 m5 ], q# o9 i! `) V
>>> a = ['ljds','Sean','Sting','Tom']1 X. ^: F! |+ _; H4 N
>>> del(a[0])6 I3 ~) \! c3 [& q' H% ?9 ?
>>> a$ Y1 ?& k; \' N
['Sean', 'Sting', 'Tom']( i. u/ ~. j& }" z' q" W6 m% a; R
returnyield,使用方法很相似,但差别还是比较大的。举例说明:; N& W) V) |. e, }

7 Q; n) y0 g: S, sreturn9 Y2 U2 F4 h  f% t

2 Q: }: X4 S. t: [3 h! B: R  Wyield% R+ \7 N( S3 @8 i6 \
查看两个函数的类型:
+ [. K, y$ O( e8 p9 s2 o' R0 @
print(type(ljds1) , type(ljds2))6 F( ^3 q+ X( N
<class 'list'> <class 'generator'>
; O' O* h7 F) M1 N1 u7 g
可以看出,一个是列表,一个是生成器。关于生成器不详细介绍了,只是说下它的优点是节省资源。列表把所有数据一次性加入内存,生成器是每次把一个数据放进内存……2 O( |* ~! I2 n  G4 \% G4 h( ]6 L8 K" q
global:可以修改全局变量。举例说明:
  J/ F) [+ B! f3 y: ~: C
( n3 p7 }5 F* i0 y: [9 ^6 a# b" pglobal" R* g& {/ N6 c5 E! N+ a+ \( M$ ^
执行ljds()这个函数之前,a=2,执行函数后,在函数里修改了全局变量a,此时print(a)已经是4了。
- c; c* j2 W; Y# Z. ^2 w+ z; ^: x. _  e+ G4 `6 r1 y* S
nonlocal:用来在函数或其他作用域中使用外层变量。(这个关键字对我来说是最陌生的,根据定义我以为理解了,但实验出的结果令我很困惑,不在这里演示了……). j. f2 [. Q2 N" F' \/ \% U
lambda:匿名函数。举例说明:
! w8 k2 E( j# B5 g7 e6 S
8 S# U$ Y* O" u0 o
ljds = lambda arg : arg * 2
( h3 N% o. t8 q4 M+ `2 A6 [result = ljds(5)
% P: |( ?  y5 A% W2 B) y- Dresult
- `' W4 O* V% B* KOut[87]: 10
& N# c, I" f# C) B
本文只是对python关键字做的简单总结,没有做到每个关键字都举例,并且可能还有不严谨的地方,欢迎批评指正。: r( R9 x2 |' W5 Y2 _& D/ t4 z/ F
终于写完了,打把王者荣耀压压惊!

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

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

扫一扫关注我们

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