zoukankan      html  css  js  c++  java
  • 函数练习题

    练习题

    一:编写3个函数,每个函数执行的时间是不一样的,

    提示:可以使用time.sleep(2),让程序sleep 2s或更多,

    import time
    def test1():
        time.sleep(1)
        print("test1")
    
    def test2():
        time.sleep(2)
        print("test2")
    
    def test3():
        time.sleep(3)
        print("test3")
    
    test1()
    test2()
    test3()

    二:编写装饰器,为每个函数加上统计运行时间的功能

    提示:在函数开始执行时加上start=time.time()就可纪录当前执行的时间戳,函数执行结束后在time.time() - start就可以拿到执行所用时间

    import time
    def outer(func):
        def timmer():
            start = time.time()
            func()
            stop = time.time()
            take = stop-start
            print("time is %s" %take)
        return timmer
    
    
    @outer
    def test1():
        time.sleep(1)
        print("test1")
    
    @outer
    def test2():
        time.sleep(2)
        print("test2")
    
    @outer
    def test3():
        time.sleep(3)
        print("test3")
    
    test1()
    test2()
    test3()
    

      

    三:编写装饰器,为函数加上认证的功能,即要求认证成功后才能执行函数

    import time
    name = "nico"
    passwd = "123"
    def outer(func):
        def timmer():
            u_name = input("username:")
            password = input("password:")
            if u_name == name and password == passwd:
                start = time.time()
                func()
                stop = time.time()
                take = stop-start
                print("time is %s" %take)
            else:
                print("wrong")
        return timmer
    
    
    @outer
    def test1():
        time.sleep(1)
        print("test1")
    
    @outer
    def test2():
        time.sleep(2)
        print("test2")
    
    @outer
    def test3():
        time.sleep(3)
        print("test3")
    
    test1()
    test2()
    test3()

    四:编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码

    提示:从文件中读出字符串形式的字典,可以用eval('{"name":"egon","password":"123"}')转成字典格式

    import time
    flag = False
    def login(name,passwd):
        f = open("装饰器练习1","r",encoding="utf-8")
        data = f.readlines()
        for i in data:
            i.strip()
        msg = eval(i)
        if name == msg["name"] and passwd == msg["password"]:
            global flag
            flag = True
    
    def outer(func):
        def timmer():
            if not flag:
                name = input("username:")
                passw = input("password:")
                login(name,passw)
            if flag:
                start = time.time()
                func()
                stop = time.time()
                take = stop-start
                print("time is %s" %take)
            else:
                print("wrong")
        return timmer
    
    
    @outer
    def test1():
        time.sleep(1)
        print("test1")
    
    @outer
    def test2():
        time.sleep(2)
        print("test2")
    
    @outer
    def test3():
        time.sleep(3)
        print("test3")
    
    test1()
    test2()
    test3()
  • 相关阅读:
    [原创]如何在Windows下安装Bugfree2.0.0.1
    [原创]网站性能优化利器之一"google page speed"
    [原创]下一代Web 应用程序安全性测试工具HP WebInspect简介
    [原创]微软软件项目管理Team Foundation Server之测试人员
    [原创]Yeepay网站安全测试漏洞之跨站脚本注入
    [原创]软件测试过程改进的内容和注意事项
    [原创]快钱99bill网站安全性测试漏洞之“跨站式脚本注入”
    马化腾内部讲座:让产品自己召唤人
    [转贴]可用性测试
    [原创]浅谈缺陷分析的意义和方法
  • 原文地址:https://www.cnblogs.com/fantsaymwq/p/9597143.html
Copyright © 2011-2022 走看看