
前言
与C一样,python也有自己的关键字,关键字有特殊的意义,不能作为普通的变量名类名等用途
关键字列表
以python2.7.5为例,有如下关键字:
and del from not while
as elif global or with
assert else if pass yield
break except import print
class exec in raise
continue finally is return
def for lambda try
不同于内建函数,我们需要了解清楚每一个关键字.
对关键字的理解
and/or/not
常用于逻辑判断的“与”,“或”,“非”运算,类似C语言的“&&”,“||”,“!”
with...as...
常用于取代try...except...finally这样的错误处理流程以简化语句
assert
用于在代码中插入断言,类似C语言中的assert功能
>>> a = 1
>>> b = 2
>>> assert(a == b)
Traceback (most recent call last):
File "<pyshell#89>", line 1, in <module>
assert(a == b)
AssertionError
|
break, continue
常用在for,while等循环语句中配合使用,用于退出循环,和C语言中的break类似
class
用于声明类
def
用于定义函数
del
用于删除对象
if...elif...else...
这三个关键字常配合使用实现闭合的条件判断语句
try...except...else/finally...
这四个关键字经常配合使用以实现异常处理的功能
exec
动态执行python语句或文件
>>> a = 1
>>> exec('a = a+1')
>>> print a
2
|
for/while
循环语句,类似C语言的for/while语句
from...import...as...
这三个关键字常配合使用,用于加载其他模块或加载特定模块的指定符号
global
用于声明符号是全局类型的,全局符号可以在整个代码里被解析
in
通常配合for使用,也可用于判断元素是否在一个序列中
>>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x = 0
>>> for i in a:
x = x + i
>>> print x
45
>>> 5 in a
True
|
is / is not
用于判断两个对象是否为同一对象
>>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> b = a
>>> b is a
True
>>> c = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> c is not a
True
|
lambda
用于声明一个内联函数,作用类似C语言的inline
实际使用中,lambda更与C语言中的函数指针(callback)类似
格式:lambda [arguments]: expression
>>> mycalc = lambda x,y:x+y*x-x
>>> mycalc(1,2)
2
|
pass
表示空操作,在某些负逻辑的判断语句中很有用,类似与C语言中的分号";"
>>> a = 5
>>> b = 2
>>> if a != 2 and b != 5:
pass
else:
print str(a)
|
打印对象
raise
产生一个异常
>>> def mydiv(x,y):
if (y == 0):
raise(ZeroDivisionError)
else:
return x/y
>>> mydiv(10,2)
5
>>> mydiv(3,0)
Traceback (most recent call last):
File "<pyshell#192>", line 1, in <module>
mydiv(3,0)
File "<pyshell#189>", line 3, in mydiv
raise(ZeroDivisionError)
ZeroDivisionError
|
return
返回,常用于传递函数返回值,类似C语言中的return
yield
这是python特有的一个关键字,它使得函数可以向线程一样每次只执行一段。
>>> def g(n):
for i in range(n):
yield i*i
>>> for i in g(5):
print i,":",
0 : 1 : 4 : 9 : 16 :
>>> t = g(5)
>>> t.next()
>>> t.next()
1
>>> t.next()
4
>>> t.next()
9
>>> t.next()
16
|