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

[复制链接]
bigocean 发表于 2017-12-31 08:17:57 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
Python有哪些关键字?如何查找?8 ~( r- V* ^8 i

2 _3 Q* ^. C' w1 w6 u# }! B方法一:官网上当然能查到
/ e" h' E2 k* E2 `2 V! n: k官网截图- D# ]( H. N: _: P
方法二:在python程序里面查找:, y4 b+ L! p6 y  r! D% D; t- n' ]
程序中查找6 C2 k: I! b5 {6 p& ]9 a
总共33个关键字,接下来简单介绍和演示:& c2 ?* L* x: H) w5 _  I
9 q% ~& s* r, S8 g, w$ Q  G
条件判断相关:
; S8 E/ I, r, ~7 E2 H  vif elif else and or is not in True False1 h$ s# q) e, B( Y1 `
上面10个关键字非常简单,if elif else就是如果xx那么xx,如果yy那么yy,否则zz。
, e1 p* \0 N9 W% g$ F5 Qand or也是很容易理解的逻辑关系:真and真=真,真and假=假,真or假=真,假or假=假……太简单,就不废话了。
! w- u1 c) ?* u, x' dis not in True False从字面上就能知道意思,值得一提的是'is'和'=='的区别:
' a5 V! ~: Z! E$ L% ppython中的对象都是有id的,'is'是比较id,即判断是否是同一个对象,而'=='是判断对象的值是否相同,举例说明:
5 I# }, m" U+ x6 }) Z& l6 N0 E9 ]2 w" m: b
>>> a = 1
6 t; P3 U" |7 j# M, m>>> b = 1.0( h8 i* D. ~+ y1 A$ L# L
>>> print(a == b , a is b)
. z# q- }7 ]/ BTrue False2 U/ ?& t4 C0 v: Q
>>> print(id(a),id(b))! I' k3 p* d  V* h( v3 V6 P* A
1577329360 2519031456344& J& ?2 l6 ?/ W# |6 @* t4 B& s
另外,在python里面,True和False是有值的,对应1和0,举例说明:/ r0 k1 Y1 x* {% b" F% E! e
>>> print(True+False,True+True,True+3,False-2,True==1,False==0,True is 1,False is 0)
4 e0 t1 W' L$ z# |& J1 2 4 -2 True True False False
9 O: o5 e% g+ K& n" D
一目了然吧?1 V$ B  ?. c; ?

7 [( {! [3 h. i* L' Z4 ]接下来是和循环相关的关键字:
3 I+ t# T8 o& ]/ ~$ J7 t, \. ~
for while break continue
: D# F) G3 |; W3 g( x% u
用一个列表解析式来演示for的使用:; j7 L; @# k( ^/ {
>>> a = [i for i in range(5)]' E# k' Q- ^$ J! \" m, u  Q
>>> a) q1 s& c. Y9 I, n% Q, x; x
[0, 1, 2, 3, 4]
" y( M, s- N: ~, H5 C3 }
while xx,直到条件xx不满足时才退出。比如常见的while True:,这种就是死循环,使用break可跳出循环。
2 j# P) }" j0 `" }" Mbreak和continue都和跳出循环有关,注意它们的差异,举例说明:( W/ c9 |% @/ n* h& |9 z: Z$ y

0 E1 i* F, c6 D! x% y% f* N. y跳出循环5 h6 D; D* F8 g
如上图的代码所示,当i==3时,continue跳出了当前循环,没有继续执行下面的print(i)语句,但然后继续整个循环,因此打印的数字里面只缺失了3。使用break时,i==3直接退出循环,后面的数字4也就没打印了。, }5 ]( K, f; R( S) Y* }
* J$ |% a3 g. B) R* x: N$ O
还有一些比较常用的关键字:- r; m. x$ v* y$ d

) I7 }4 q& _2 f" K: d/ U1 W3 }def ljds(): def是定义一个函数。
, a1 S& w* e! A# s9 m: M8 Z; V/ W- B: ]: p6 E  l% C
class ljds(): class是定义一个类。" d3 K9 T1 J" h8 }0 g. N
pass :占位符,是个空语句,只是为了保证程序结构的完整性。(不完整会报错,所以加个pass放在那里喽)
9 R- ?% K5 r1 [5 _None:空对象。; Y* c0 a* H0 v" v. p
importfrom、as都是导入模块使用的。举例说明:2 E' ]: e/ c- f3 S
import re:导入正则表示模块
$ H! R. ?& b) F2 F* z" ]( qfrom bs4 import BeautifulSoup:导入bs4模块中的BeautifulSoup函数。' s- o$ A( h' R* _/ Q4 O5 |
import sys as ljds:导入sys模块,并重命名为ljds。
, [' Z4 I% b/ A. k当然as不是只能用于导入模块,读写文件也是能用的,比如:8 t1 H4 |% z! \5 U
with open('ljds.txt','w') as f:
! S' C2 ~" b7 m5 M, ?7 E3 U! t. O7 D. r; e" O: o
try except finally raise assert关键字主要用于处理异常:try后面写可能出现异常的代码,在except中捕获异常。finally后的语句总会执行。raise用于引发异常。assert是断言语句。
  f. \: I; D" Q0 i  B/ q# R9 Ydel:举例说明:
+ }6 m7 C) F; L6 Q$ s4 Y1 G
>>> a = ['ljds','Sean','Sting','Tom']0 P2 w; b# r' `' q( [6 v: b
>>> del(a[0])
1 @  j5 W1 I& I2 ]>>> a' \& ~9 `7 N6 I2 W2 T% p% O; f, B
['Sean', 'Sting', 'Tom']
! h& R5 e' l5 l1 W( I* d: W" o
returnyield,使用方法很相似,但差别还是比较大的。举例说明:$ A* y; r: p9 C- q0 y% z

$ G# u: |) p( o% c8 r0 dreturn
6 r6 e5 u/ n0 c5 ]4 C0 a/ c5 h+ d3 N+ `; N
yield& g0 }( H: ^" J, T* b5 E
查看两个函数的类型:
7 N) M3 F, {, i# Q( d
print(type(ljds1) , type(ljds2))- o7 x( V0 `' U3 S6 g
<class 'list'> <class 'generator'>) g8 q2 `6 K2 y+ `
可以看出,一个是列表,一个是生成器。关于生成器不详细介绍了,只是说下它的优点是节省资源。列表把所有数据一次性加入内存,生成器是每次把一个数据放进内存……0 {5 d* h, m. S5 g$ a. z
global:可以修改全局变量。举例说明:
* ^% ^4 B$ Q* D. M4 h
1 {) ^! L$ D3 H6 A) kglobal( q1 X; N5 F6 t/ {
执行ljds()这个函数之前,a=2,执行函数后,在函数里修改了全局变量a,此时print(a)已经是4了。( j; {* Y  Y0 a- f
$ ]: t+ |+ M) b( ~9 s" R
nonlocal:用来在函数或其他作用域中使用外层变量。(这个关键字对我来说是最陌生的,根据定义我以为理解了,但实验出的结果令我很困惑,不在这里演示了……)) |1 ~2 a3 Q5 `2 Z& e' ?
lambda:匿名函数。举例说明:6 u5 f& ~( f+ w6 y  Q, F' A

* @, x7 Y2 y7 A9 X# C; c
ljds = lambda arg : arg * 2
7 Q0 }' Z$ [1 ~( u/ \" Qresult = ljds(5)& l$ ^7 {- s5 U5 i3 H5 \) q
result
$ |: g3 P6 z( w6 @2 |$ W) h. ~Out[87]: 10/ _3 n3 r! j( n: j: |* Q4 _4 x
本文只是对python关键字做的简单总结,没有做到每个关键字都举例,并且可能还有不严谨的地方,欢迎批评指正。# y* E# f2 {* [+ w6 R' V4 F
终于写完了,打把王者荣耀压压惊!

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

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

扫一扫关注我们

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