函数的相关

print('hello world')

#函数
##测试函数也是对象
def test1():
    print(123455)

test1()
c=test1
c()
print(id(c))
print(id(test1))

##全局变量和局部变量
a=8
def test2():
    b=3
    print(b*2)

    global a
    a=50

test2()
print(a)

###全局变量和局部变量的效率测试
import time
import math

def test1():
    start=time.time()
    for i in range(100000):
        math.sqrt(36)
    end=time.time()
    print('耗时{0}'.format((end-start)))


def test2():
    a=math.sqrt
    start = time.time()
    for i in range(100000):
        a(36)
    end = time.time()
    print('耗时{0}'.format((end - start)))

test1()
test2()

##参数的传递
a=[1,2]
print(id(a))
print(a)

def test1(m):
    print(id(m))
    m.append(3)
    print(id(m))

test1(a)
print(a)

##浅拷贝和深拷贝
import copy
###浅拷贝
def testcopy():
    a=[1,2,[1,2]]
    b=copy.copy(a)
    print('a:',a)
    print('b:',b)
    print('浅拷贝')
    b.append(3)
    b[2].append(3)
    print('a:',a)
    print('b:',b)

testcopy()
print('********************')

###深拷贝
def testdeepcopy():
    a=[1,2,[1,2]]
    b=copy.deepcopy(a)
    print('a:',a)
    print('b:',b)
    print('深拷贝')
    b.append(3)
    b[2].append(3)
    print('a:',a)
    print('b:',b)

testdeepcopy()


##位置参数,命名参数,默认值参数
def test1(a,b,c,d):
    print(a,b,c,d)

test1(1,2,3,4)
test1(d=4,b=2,a=1,c=3)

def test2(a,b,c,d=4):
    print(a,b,c,d)

test2(1,2,3)


##可变命名参数和强制命名参数
def t1(a,b,*c):
    print(a,b,c)

t1(1,2,3,4,5,6)

def t2(a,b,*c,**d):
    print(a,b,c,d)

t2(1,2,3,4,5,age=19)

def t3(*a,b,c):
    print(a,b,c)

t3(1,2,3,4,b=5,c=6)
'''一个星号代表元组,两个星号代表字典。星号在前后面的参数必须强制命名'''

##lambda表达式和匿名函数
f= lambda a,b,c,d:a*b*c*d
print(f(1,2,3,4))

g=lambda a:a*4,lambda b:b*4
print(g[0](5))

##eval()函数
e="print('abcd')"
eval(e)

a=1
b=2
print(eval('a+b'))
dict1=dict(a=100,b=20)
print(eval('a+b',dict1))

##递归函数的基本原理
def test1(n):
    print('test1:',n)
    if n==0:
        print('over')
    else:
        test1(n-1)
    print('test1:**',n)

test1(5)

###使用递归函数,计算阶乘
def f(n):
    if n==1:
        return 1
    else:
        return n*f(n-1)
print(f(6))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值