zoukankan      html  css  js  c++  java
  • 面试题,第一波来袭

    今日作业

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

        @wrapper
      def func():
        print(123)

      func()
    2. 为函数写一个装饰器,把函数的返回值 +100 然后再返回。

        @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()
    4. 写一个脚本,接收两个参数。

      • 第一个参数:文件

      • 第二个参数:内容

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

        # 执行脚本: python test.py oldboy.txt 你好
    import sys
    
    if len(sys.argv) < 3:
        print('参数不够,请重新运行')
        # sys.exit(0)
    else:
        file_path = sys.argv[1]
        content = sys.argv[2]
        with open(file_path,mode='w',encoding='utf-8') as f:
            f.write(content)
    View Code

    5.递归的最大次数是多少?

    1000次

    6.看代码写结果

      print("你
    好")
    print("你\n好")
    print(r"你 好")

    7.写函数实现,查看一个路径下所有的文件【所有】。

    import os
    
    def get_file_list(path):
        """
        查看路径下所有的文件
        :param path: 指定的路径
        :return:
        """
    
    result = os.listdir(r'D:codes21day14')
    for path in result:
    print(path)
    View Code

    8.写代码

    path = r"D:code	est.pdf"

    # 请根据path找到code目录下所有的文件【单层】,并打印出来。

    写代码实现【题目1】和【题目2】

    题目1

    # 9.1 斐波那契 4000000 内最大的数 # 0 1 1 2 3 5 ...
    num1 = 0
    num2 = 1
    count = 0
    while num2 < 4000000:
        # print(num2) # 3524578
        num1,num2 = num2,num1 + num2
        count += 1
    print(num1,count)
    View Code

    题目2

    dic1 = {'k1':1,'k2':'alex','k3':9}
    dic2 = {'k1':3,'k4':'alex','k2':'xx'}
    for k,v in dic2.items():
        if k not in dic1:
            dic1[k] = v
            continue
        dic1[k] = dic1[k] + v
    print(dic1)
    View Code

    看代码写结果

    依次输出如下
    
    [10]
    
    [123]
    
    [10,'a']
    View Code

     

    3.实现如下面试题

    5.实现以下面试题

    题3.2

    tupleA = (11,22,33)
    tupleB = ('k1','vv','asdf')
    info = {}
    for i in range(0,len(tupleA)):
        info[tupleA[i]] = tupleB[i]
    print(info)
    """
    """
    py2:
        xrange,不会在内存中立即创建,而是在循环时。边循环边创建。
        range ,在内存立即把所有的值都创建。
    py3:
        range ,不会在内存中立即创建,而是在循环时。边循环边创建。
        list(range(10))
    """
    View Code

    题3.7

    v = [11,22,11,22,123,123,9,1]
    v = list(set(v))
    print(v)
    View Code

    题5.2

    for i in range(1,1001):
        num_list = []
        # 每次循环进来:都要对这个数进行求所有约数。
        for j in range(1,i):
            if i % j == 0:
                num_list.append(j)
        val = 1
        for item in num_list:
            val *= item
        if i == sum(num_list) and i == val:
            print(i)
    View Code

    题5.4

    alist = [12,3,4,5]
    blist = [11,9,4,20]
    # 题意一:谁大的次数多,就返回谁。
    # 题意二:比较每个元素,如果a中每个元素都比b中的每个元素大,则返回a;否则返回b ;如果所有都相等则返回A;有大有小返回b
    """
    需求:
        1. 按照索引依次比较两个列表中的元素。
        2. 如果A中的每个元素都比B中每个元素大(按照索引一一对应), 则返回A列表。
        3. 如果A中的每个元素都比B中的每个元素小(按照索引一一对应),则返回B列表。
        4. A中和B中的所有都相等,则返回A
        5. A中和B中的有大有小,则返回B
    """
    result = set()
    for i in range(len(alist)):
        if alist[i] > blist[i]:
            result.add('a>b')
        elif alist[i] < blist[i]:
            result.add('a<b')
        else:
            result.add('a==b')
    
    if len(result) != 1:
        print(blist)
    else:
        ele = result.pop()
        if ele == 'a>b' or ele == 'a==b':
            print(alist)
        else:
            print(blist)
    View Code

    明日预习

  • 相关阅读:
    [CF1166E] The LCMs Must be Large
    AtCoder Beginner Contest 161
    [CF1168B] Good Triple
    [CF1172B] Nauuo and Circle
    [CF1185E] Polycarp and Snakes
    [CF1187E] Tree Painting
    Codeforces Round #631 (Div. 2)
    [CF1200E] Compress Words
    Thinkphp绕过宝塔getshell
    如何成为一个漏洞赏金猎人
  • 原文地址:https://www.cnblogs.com/yx12138/p/10727222.html
Copyright © 2011-2022 走看看