Python_11

  1. 1.
#函数内部访问全局变量

def combine():
    x='My name is'    
    print x,y

y='Bob'
combine()

My name is Bob

  1. 2.

#函数内部访问全局变量,当全局变量与局部变量重名时

def combine():
    y='My name is'    
    print y,globals()['y']

y='Bob'
combine()

My name is Bob

  1. 3.
#如果在函数内部赋值于一个变量,它会自动生成局部变——除非告知将其声明为全局变量

x=1
def add():
    global x
    x=x+1

add()
print x

2

  1. 4.
#嵌套 作用域

def multiplier(factor):
    def multiplierBy(number):
        return factor*number
    return multiplierBy

将新函数定义在一个函数里。

>>> x=multiplier(5)
>>> x(3)
15
>>> multiplier(4)(5)
20
  1. 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

  1. 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值