python有个特点是作用域用冒号表示,不是大括弧,所以你看到很多语句比如if else for while后面都有一个冒号。
Python 2 has 31 keywords:
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
In Python 3, exec is no longer a keyword, but nonlocal is.
1.)pass
def f(arg): pass # a function that does nothing (yet)
class C: pass # a class with no methods (yet)
pass的意思是什么都不要做,作用是为了弥补语法和空定义上的冲突,我理解他的好处体现在代码的编写过程之中,比如你可以先写好软件的整个框架,然后再填好框架内具体函数和class的内容,如果没有pass编译器会报一堆的错误,让整个开发过程很不流畅。
2)assert
assert len(mylist) >= 1这个关键字用来在运行中检查程序的正确性,和很多其他语言是一样的作用。
3)yeild
def inorder(t):过去看过一个c协程的概念和这个很类似,yeild就是把一个函数变成了可以迭代的容器,上面的例子就是一个遍历二叉树的例子,用很直观的实现了算法思想。
if t:
for x in inorder(t.left):
yield x
yield t.label
for x in inorder(t.right):
yield x
for n in inorder(tree)
print n
4) raise
class MyException(Exception):passpython raise 和java throw很类似,都是抛出异常。
try:
#some code here
raise MyException
except MyException:
print "MyException encoutered"
finally:
print "Arrive finally"
5) lambda
>>> g = lambda x: x*2
>>> g(3)
匿名函数是个很时髦的概念,提升了代码的简洁程度。
6) del
>>> a = [-1, 3,'aa', 85] # 定义一个list
>>> del a[0] #删除第0个元素
>>> del a[2:4] #删除从第2个元素开始,到第4个为止的元素。包括头不包括尾
del用于list列表操作,删除一个或者连续几个元素。
7) and or not
逻辑判断和C的&& || 一样
8) global
global a
a = 2
a += 1
9) as with
with是python2.5以后才有的,它实质是一个控制流语句,with可以用来简化try-finally语句。它的主要用法是实现一个类__enter__()和__exit__()方法,基本形式如下:
class controlled_execution:
def _enter__(self):
set things up
return thing
def __exit__(self, type, value, traceback):
tear thing down
with controlled_execution() as thing:
some code
在实际的运行过程中,python会首先运行enter里的代码,返回thing,作为as 后面的变量值,然后再运行with模块中的代码,最后会自动执行exit中的代码,而不管with中的代码运行结果如何。这也就是with能简化try-finally语句的原因。所以with通常用在读取文件的操作中,将文件句柄的关闭操作放在exit方法中,这样就不会因忘记释放文件句柄而产生可能出现的错误。
另外,exit()方法的返回值可以用来指示with部分的代码出现的异常是否需要raise,如果返回false,则会raise,否则,不进行任何操作。