一、基本概念
1.内置的变量类型:
def __init__(self, value): # 初始化需要匹配的值value
self.value = value
self.fall = False # 如果匹配到的case语句中没有break,则fall为true。
def __iter__(self):
yield self.match # 调用match方法 返回一个生成器
raise StopIteration # StopIteration 异常来判断for循环是否结束
def match(self, *args): # 模拟case子句的方法
if self.fall or not args: # 如果fall为true,则继续执行下面的case子句
# 或case子句没有匹配项,则流转到默认分支。
return True
elif self.value in args: # 匹配成功
self.fall = True
return True
else: # 匹配失败
return False
operator = "+"
x = 1
y = 2
for case in switch(operator): # switch只能用于for in循环中
if case('+'):
print x + y
break
if case('-'):
print x - y
break
if case('*'):
print x * y
break
if case('/'):
print x / y
break
if case(): # 默认分支
print ""
2.while...语句
只要在一个条件为真的情况下,while语句允许你重复执行一块语句。while语句是所谓 循环 语句的一个例子。while语句有一个可选的else从句。
while True:
pass
else:
pass
#else语句可选,当while为False时,else语句被执行。 pass是空语句。
3.for 循环
for i in range(0, 5):
print i
else:
pass
# 打印0到4
注:当for循环结束后执行else语句;range(a, b)返回一个序列,从a开始到b为止,但不包括b,range默认步长为1,可以指定步长,range(0,10,2);
函数通过def定义。def关键字后跟函数的标识符名称,然后跟一对圆括号,括号之内可以包含一些变量名,该行以冒号结尾;接下来是一块语句,即函数体。
def sumOf(a, b):
return a + b
4.1 局部变量
在函数内定义的变量与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是局部的。这称为变量的作用域。global语句, 为定义在函数外的变量赋值时使用global语句。
def func():
global x
print "x is ", x
x = 1
x = 3
func()
print x
以上代码,输出的结果为:
3
1
4.2 默认参数
通过使用默认参数可以使函数的一些参数是‘可选的’。
def say(msg, times = 1):
print msg * times
say("peter")
say("peter", 3)
注意:只有在形参表末尾的那些参数可以有默认参数值,即不能在声明函数形参的时候,先声明有默认值的形参而后声明没有默认值的形参,只是因为赋给形参的值是根据位置而赋值的。
4.3 关键参数
如果某个函数有很多参数,而现在只想指定其中的部分,那么可以通过命名为这些参数赋值(称为‘关键参数’)。
优点:不必担心参数的顺序,使函数变的更加简单;假设其他参数都有默认值,可以只给我们想要的那些参数赋值。
def func(a, b=2, c=3):
print "a is %s, b is %s, c is %s" % (a, b, c)
func(1) #输出a is 1, b is 2, c is 3
func(1, 5) #输出a is 1, b is 5, c is 3
func(1, c = 10) #输出a is 1, b is 2, c is 10
func(c = 20, a = 30) #输出a is 30, b is 2, c is 20
4.3 return语句
return语句用来从一个函数返回,即跳出函数。可从函数返回一个值。
没有返回值的return语句等价于return None。None表示没有任何东西的特殊类型。