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

[复制链接]
bigocean 发表于 2017-12-31 08:17:57 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
Python有哪些关键字?如何查找?
. C4 |6 p3 p, F4 R' \) Z; i( l0 ]( k8 J
方法一:官网上当然能查到+ l  h/ L2 x* E% w9 E
官网截图" y) }: U1 t$ o7 k: ^6 p
方法二:在python程序里面查找:
; i: i. N) r2 q! v- x8 r! L# B程序中查找
7 b" k) ?* h: G总共33个关键字,接下来简单介绍和演示:
3 @  u2 y- s& g6 K$ k+ c$ _/ Q4 R; I6 T$ b
条件判断相关:
5 o7 {3 `0 E9 u7 _+ cif elif else and or is not in True False8 F3 N( x9 D6 w% u( q6 e2 {
上面10个关键字非常简单,if elif else就是如果xx那么xx,如果yy那么yy,否则zz。
& O1 H' C$ d% [8 Hand or也是很容易理解的逻辑关系:真and真=真,真and假=假,真or假=真,假or假=假……太简单,就不废话了。
% p! M) V+ V$ O. Gis not in True False从字面上就能知道意思,值得一提的是'is'和'=='的区别:
  f' b  }, {# T3 rpython中的对象都是有id的,'is'是比较id,即判断是否是同一个对象,而'=='是判断对象的值是否相同,举例说明:
: \  ?% a1 r$ p7 d2 `& t, V8 r
6 e8 l& E5 c5 Y# `# A2 M, T' x
>>> a = 1
4 u* M  j' f, j$ a>>> b = 1.0
( c" H5 a' g# e>>> print(a == b , a is b)0 I; y7 w% T/ P- A
True False
. x2 N: X; W/ r! m) [- Z>>> print(id(a),id(b))8 q- B$ Q, Z# q2 j) b, Q: u
1577329360 2519031456344* x% h5 F# J7 o$ i. V
另外,在python里面,True和False是有值的,对应1和0,举例说明:* {4 V5 k6 [* Q) T0 q
>>> print(True+False,True+True,True+3,False-2,True==1,False==0,True is 1,False is 0): H! @9 e3 [" X- s1 ?
1 2 4 -2 True True False False% m8 z* O2 d& l% Q' z# A
一目了然吧?
' g: F$ I* l% E$ y. n3 D( K9 _+ o2 `! \1 {  B: U
接下来是和循环相关的关键字:
3 ~3 O  P5 ]& ?. b% s
for while break continue
* |0 e9 r, g* n+ ]" z
用一个列表解析式来演示for的使用:: X: Q& E: z' [2 A5 V+ i
>>> a = [i for i in range(5)]
1 W! R) X- ^& s>>> a2 |% M. q) w' c3 @+ Z! W
[0, 1, 2, 3, 4]
, g( Y% `, s: }8 G2 ~
while xx,直到条件xx不满足时才退出。比如常见的while True:,这种就是死循环,使用break可跳出循环。
6 v2 d; `4 K4 C/ f1 O( t' [1 Cbreak和continue都和跳出循环有关,注意它们的差异,举例说明:: ]0 E* @1 z( `- @& \7 j

+ Y7 c! [/ X( Y" C跳出循环
) E6 Y8 S1 R9 E5 Y如上图的代码所示,当i==3时,continue跳出了当前循环,没有继续执行下面的print(i)语句,但然后继续整个循环,因此打印的数字里面只缺失了3。使用break时,i==3直接退出循环,后面的数字4也就没打印了。
  F: [: [, \7 @+ s( K
/ w: e% S% Q0 c/ z; d( ^还有一些比较常用的关键字:
" p% G/ O! m: L$ {
. t' b* q; |9 M' i( Ndef ljds(): def是定义一个函数。
6 e  `! [, |+ a* m  s3 n. Z. z# S4 Y/ B  v* C: M" M: d. ?: a( c
class ljds(): class是定义一个类。8 @6 H4 A& W; m8 ~: i
pass :占位符,是个空语句,只是为了保证程序结构的完整性。(不完整会报错,所以加个pass放在那里喽)
0 f' P7 u/ w" N  h1 w9 xNone:空对象。5 F& \% N/ E5 e* W: K) y, _
importfrom、as都是导入模块使用的。举例说明:# O2 C6 Z+ H( a+ G
import re:导入正则表示模块7 i1 O9 S5 K# v* c
from bs4 import BeautifulSoup:导入bs4模块中的BeautifulSoup函数。: ]" n* Z. n! _: f+ [
import sys as ljds:导入sys模块,并重命名为ljds。
: A4 J9 n/ X4 M当然as不是只能用于导入模块,读写文件也是能用的,比如:9 ]+ @  u( n. e( {  T
with open('ljds.txt','w') as f:  ?8 y7 z+ ]) e- z
: U# Y& B6 q+ R- ?* F1 m/ U" F
try except finally raise assert关键字主要用于处理异常:try后面写可能出现异常的代码,在except中捕获异常。finally后的语句总会执行。raise用于引发异常。assert是断言语句。
% L: I% F7 m3 B& s1 ?( w; [1 w: Tdel:举例说明:
/ }2 N9 W3 t8 z0 h* S9 v
>>> a = ['ljds','Sean','Sting','Tom']
$ \3 b, A' a0 M% l- ^>>> del(a[0])0 A: H0 k. z" F4 k2 Z, |- e
>>> a4 b; M5 _: J; Y  J( ?: U$ X; o: Y7 ~
['Sean', 'Sting', 'Tom']
. e2 {& g& Y' h) S( y
returnyield,使用方法很相似,但差别还是比较大的。举例说明:
0 R$ G  d& a4 b. q! m% G& P! b  e+ k! V3 C' W
return$ M4 ~0 L2 Z9 ~% d8 K+ w2 u2 d8 e
8 @" }8 x% A5 F  g8 b, X. @; [% O
yield
* H; ~) M2 Z4 n, n( C查看两个函数的类型:( d0 U- ]2 ?) ~5 j7 \/ \
print(type(ljds1) , type(ljds2))
: O0 t  `+ d  f<class 'list'> <class 'generator'>
; o( H8 s9 k( _3 M+ F6 s4 E4 S
可以看出,一个是列表,一个是生成器。关于生成器不详细介绍了,只是说下它的优点是节省资源。列表把所有数据一次性加入内存,生成器是每次把一个数据放进内存……( M3 R9 W' J" r5 M+ T
global:可以修改全局变量。举例说明:
# [0 [0 ~6 X8 G) l  G5 L4 b5 ~4 a& T  y! V
global
& o/ ?$ Z2 a/ O7 M( i执行ljds()这个函数之前,a=2,执行函数后,在函数里修改了全局变量a,此时print(a)已经是4了。
9 y3 x# G+ X4 }& d: w7 n& u) c5 z$ X
nonlocal:用来在函数或其他作用域中使用外层变量。(这个关键字对我来说是最陌生的,根据定义我以为理解了,但实验出的结果令我很困惑,不在这里演示了……)0 W& i# E! J$ D; A$ t0 l3 Q) ~0 R% K
lambda:匿名函数。举例说明:
3 u" U* k! L! s* {6 c, A2 {" y' z
$ V' O- Z: g; _4 e
ljds = lambda arg : arg * 2; ]% B- P: W% t( D& d. }9 j# O; Z, j
result = ljds(5)0 v+ e) n/ \! ?5 q
result
3 d3 O& ^' n. ]- V* P* iOut[87]: 10
& v6 h# c+ M. @
本文只是对python关键字做的简单总结,没有做到每个关键字都举例,并且可能还有不严谨的地方,欢迎批评指正。
/ x: R! t! F$ H/ r终于写完了,打把王者荣耀压压惊!

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

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

扫一扫关注我们

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