老男孩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))
# 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
答案-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
原文地址:https://www.cnblogs.com/guge-94/p/10582628.html