老男孩Python全栈学习 S9 日常作业 011

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

上一篇:ASP.NET MVC5中的数据注解(转载)


下一篇:洛谷P1565 牛宫