1 while a >= b:
2 foo()
3 boo()
4 if c != d: break
5 if c >= d: continue
6 coo()
7 else:
8 doo()
9 eoo()
上面是 while loop 的使用范例,当 a >= b 时,行 2-6会不断的一再执行,直到 a >= b 不成立时(false), 则执行行 8,然後继续往下执行 eoo()。但,如果执行行 4 的 break,则会无条件直接跳离 while loop, 不再执行 while loop 的任何内容(包含 else 的部分),直接执行行 9。若 while loop 中,continue 被执行, 则程式会直接跳过後面的指令回到行 1,进行条件判断。
1 for i in 1, 7, 3, 9:
2 print i,
结果显示 : 1 7 3 9
上面为 for loop 的使用法,for in : ....in 後面可为任何 sequence type object。
1 for i in range(3):
2 print i,
3 print range(3)
结果显示 : 0 1 2 [0, 1, 2]
range(x) 会产生一个包含 0 ~ x-1 的 list。
Function
1 def foo(a, b):
2 return a+b
3 print foo(3, 4)
结果显示 : 7
上面为 function 的定义方式,def (, ....): ....return 可回传 function 的执行结果。 当行 3 执行 foo(3, 4),function foo 会被执行,然後传回 3+4 (a+b) 的结果。
当需要使用到其它 module 时,可以使用 import 指今,将该 module import 到你的 name space 里。 上例 b modlue 就 import a 这个 modlue,当 b 执行 import 指令时,在 b 的 name space 里, a 这个 name 就会 bind 到一个 module object。module 一但 load 进 memory 时, 就以 module object 代表,以供进一部的使用。所有 module 里定义的 name(function,object 或後面会介绍的 class)都会成为 module object 的 attribute。透过使用 module object attribute, 我们可以 access module 内所定义之 name。module attribute 的使用方式如上例, module 的 name 接着 '.' 接着 attribute 的 name。每个 module 都有自己的 name space, 透过 module attribute,我们可以 access 到其它 module 的 name space。
当 module 头一次被 load 进 memory 时,module 会被从头到尾执行一次。 其执行的结果则定义了 module 的 name space,使 name 和 object bind 在一起。 如上例执行 a.py 中的 def foo(): .... 这个指令时,定义一个 function object, 并使之和 foo 这个 name 进行 binding。
--- a.py ----
def foo():
return action+1
action = 9
--- a.py end ---
--- b.py ---
from a import *
print foo(), action
--- b.py ---
上例和前一个例子是相同的,但使用 from import *,这个指令的作用是, 把 module name space 里所有的 name,import 到目前的 name space 里。'*' 是指所有的 name, 如果只是要 import 特定的 name,那麽你可以指定 name 替代 '*',如 from a import foo。