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))
#
print(calc(1,2))
# miss error
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))
# SyntaxError
答案-1
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']
答案-2