1、编写装饰器,为函数加上统计时间的功能
import time def Decoration(func): def Timmer(): # 开始时间 Start = time.time() func() End = time.time() return Start - End return Timmer @Decoration def func1(): time.sleep(0.5) print('hello') return
2、编写装饰器,为函数加上认证的功能;
这个题目一点思路都没有,也没办法确定出题者倒底是想让我干啥,日后再回过头来看看吧
3、写函数,传入一个参数n,返回n的阶乘
def func1(num): Num = 1 for i in range(1,num+1): Num *= i return Num
4、有如下函数,你可以任意添加代码,用两种或以上的方法,执行inner函数.
def wrapper(): def inner(): print(666) wrapper()
# 方式1 def wrapper(): def inner(): print(666) inner() wrapper() # 方式2 def wrapper(): def inner(): print(666) return inner inner = wrapper() inner()
5、相关面试题
def calc(a,b,c,d=1,e=2): return (a+b)*(c-d)+e
1、请分别写出下列标号代码的输出结果,如果出错请写出Error。
print(calc(1,2,3,4,5)) print(calc(1,2)) print(calc(e=4,c=5,a=2,b=3)) print(calc(1,2,3)) print(calc(1,2,3,e=4)) print(calc(1,2,3,d=5,4))
2、下面代码打印的结果分别是 list1=? ,list2=? ,list3=?.
def extendList(val,list=[]): list.append(val) return list list1 = extendList(10) list2 = extendList(123,[]) list3 = extendList('a') print('list1=%s'%list1) print('list2=%s'%list2) print('list3=%s'%list3)
def calc(a,b,c,d = 1,e = 2): return (a+b) * (c-d) + e print(calc(1,2,3,4,5)) # 2 print(calc(1,2)) # miss error print(calc(e=4,c=5,a=2,b=3)) # 24 print(calc(1,2,3)) # 8 print(calc(1,2,3,e=4)) # 10 print(calc(1,2,3,d=5,4)) # SyntaxError
def extendList(val,list=[]): list.append(val) return list list1 = extendList(10) # [10] list2 = extendList(123,[]) # [123] list3 = extendList('a') # [10, 'a'] print('list1=%s'%list1) # list1=[10,'a'] print('list2=%s'%list2) # list2=[123] print('list3=%s'%list3) # list3=[10,'a']