- 1.
#函数内部访问全局变量
def combine():
x='My name is'
print x,y
y='Bob'
combine()
My name is Bob
- 2.
#函数内部访问全局变量,当全局变量与局部变量重名时
def combine():
y='My name is'
print y,globals()['y']
y='Bob'
combine()
My name is Bob
- 3.
#如果在函数内部赋值于一个变量,它会自动生成局部变——除非告知将其声明为全局变量
x=1
def add():
global x
x=x+1
add()
print x
2
- 4.
#嵌套 作用域
def multiplier(factor):
def multiplierBy(number):
return factor*number
return multiplierBy
将新函数定义在一个函数里。
>>> x=multiplier(5)
>>> x(3)
15
>>> multiplier(4)(5)
20
- 5.
#非递归版本
def fac(n):
result=n
for i in range(1,n):
result*=i
return result
print fac(5)
#递归版本
def faci(n):
if n==1:
return 1
else:
return n*faci(n-1)
print faci(5)
120
120
- 6.
def seach(squcence,number,lower=0,upper=None):
if upper==None:
upper=len(squcence)-1
if lower==upper:
assert number==squcence[lower]
return lower
else:
middle=(lower+upper)//2
if squcence[middle]<number:
return seach(squcence,number,middle+1,upper)
else:
return seach(squcence,number,lower,middle)
x=[1,2,3,4,5,6,9,8,7]
x.sort()
print seach(x,5)
一个简单的二分查找。
4