老男孩python全栈s21day14作业

  1. 为函数写一个装饰器,在函数执行之后输入 after

    @wrapper
    def func():
        print(123)
    
    func()
    
    def wrapper(func):
        def inner():
            v = func()
            print("after")
            return v
        return inner
    
    @wrapper
    def func():
        print(123)
    
    func()
    
  2. 为函数写一个装饰器,把函数的返回值 +100 然后再返回。

    @wrapper
    def func():
        return 7
    
    result = func()
    print(result)
    
    def wrapper(func):
        def inner():
            v = func()
            return v+100
        return inner
    
    
    @wrapper
    def func():
        return 7
    
    result = func()
    print(result)
    
  3. 为函数写一个装饰器,根据参数不同做不同操作。

    • flag为True,则 让原函数执行后返回值加100,并返回。
    • flag为False,则 让原函数执行后返回值减100,并返回。
    @x(True)
    def f1():
        return 11
    
    @x(False)
    def f2():
        return 22
    
    r1 = f1()
    
    def x(args):
        def wrapper(func):
            def inner():
                if args:
                    return func()+100
                else:
                    return func()-100
            return inner
        return wrapper
    @x(True)
    def f1():
        return 11
    
    @x(False)
    def f2():
        return 22
    
    r1 = f1()
    r2 = f2()
    print(r1,r2)
    
  4. 写一个脚本,接收两个参数。

    • 第一个参数:文件
    • 第二个参数:内容

    请将第二个参数中的内容写入到 文件(第一个参数)中。

    # 执行脚本: python test.py oldboy.txt 你好
    
    import sys
    file_name = sys.argv[1]
    content = sys.argv[2]
    print(file_name,content)
    with open(str(file_name),mode='w',encoding='utf-8') as f:
        f.write(content)
    
  5. 递归的最大次数是多少?

    1000
  6. 看代码写结果

    print("你\n好")
    #你
    #好
    #
    print("你\\n好")
    #你\n好
    #
    print(r"你\n好")
    #你\n好
    #
    
  7. 写函数实现,查看一个路径下所有的文件【所有】。

    import os
    import sys
    path = sys.argv[1]
    # result = os.walk(r'E:\python\pythoncode\pythonhomework')
    result = os.walk(path)
    
    for a,b,c in result:
        # a,正在查看的目录 b,此目录下的文件夹  c,此目录下的文件
        for item in c:
            path = os.path.join(a,item)
            print(path)
    
  8. 写代码

    path = r"D:\code\test.pdf"
    
    # 请根据path找到code目录下所有的文件【单层】,并打印出来。
    
    import os
    path = r"D:\code\test.pdf"
    path_list = path.split('\\')
    path_new ="\\".join(path_list[:-1])
    result = os.listdir(path_new)
    for p in result:
        print(p)
    
  9. 写代码实现【题目1】和【题目2】
    输入图片说明

    #【题目1】
    def fib(n):
        list =[1,2]
        while list[-1] <=n:
            list.append(list[-1]+list[-2])
        # print(list)
        print(list[-1],len(list))
    
    fib(4000000)
    
    #或者
    num1 = 0
    num2 = 1
    count = 0
    while num2<4000000:
        num1,num2 = num2,num1+num2
        count +=1
    print(num1,count)
    
    #【题目2】
    dicta = {"a":1,"b":2,"c":3,"d":4,"f":"hello"}
    dictb = {"b":3,"d":5,"e":7,"m":9,"k":"world"}
    dictc = dicta
    # print(dictc)
    for i in dictb.keys():
        if i in dictc.keys():
            dictc[i]=dictc[i]+dictb[i]
        else:
            dictc[i]=dictb[i]
    print(dictc)
    
  10. 看代码写结果
    输入图片说明

    def extendList(val,list=[]):
        list.append(val)
        return list
    list1 = extendList(10)
    list2 = extendList(123,[])
    list3 = extendList('a')
    print(list1,list2,list3)
    #[10] [123] [10,'a']
    	
    
  11. 实现如下面试题

    1. 选出以下表达式表述正确的选项;
    A:{1:0,2:0,3:0}
    B:{'a':0,'b':0,'c':0}
    C:{(1,2):0,(4,3):0}
    D:{[1,2]:0,[4,3]:0}
    E:{(1,2):0,{4,3}:0}
    #A B C
    
    2. 
    tupleA = ('a','b','c','d','e')
    tupleB = (1,2,3,4,5)
    # res = {'a':1,'c':3,'b':2,'e':5,'d':4}
    res = {}
    for i in range(len(tupleA)):
        res[tupleA[i]]=tupleB[i]
    print(res)
    
    3. 
    sys.argv
    
    4.
    ip = '192.168.0.100'
    ip_list =ip.split('.')
    print(ip_list)
    
    5.
    AList = ['a','b','c']
    AList_str=''
    for i in range(len(AList)):
        AList_str += AList[i]+','
    print(AList_str.rstrip(','))
    
    6.
    print(strA[-2:])
    print(strA[1:3])
    
    7.
    Alist = [1,2,3,1,3,1,2,1,3]
    Aset = set()
    for i in range(len(Alist)):
        Aset.add(Alist[i])
    print(list(Aset))
    
    

    输入图片说明
    输入图片说明

    #1
    
    import os
    def out_file_path(file_name):
        file_path = os.path.abspath(file_name)
        result = os.walk(file_path)
        for a,b,c in result:
            for item in c:
                path = os.path.join(a,item)
                print(path)
                
                
    #2
    for i in range(1,1001):
        sum = 0
        for j in range(1,i):
            if i%j ==0:
                sum +=j
        if i ==sum:
            print(i)
    #3多进程池??放弃
    #4题目逻辑感觉有问题,放弃。
    #5
    with open('etl_log.txt',mode='r') as f:
        for line in f:
            print(line)
    
    
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值