美文网首页
day9-函数2-homework

day9-函数2-homework

作者: rzlong | 来源:发表于2018-08-30 23:40 被阅读0次
    1.写一个函数将一个指定的列表中的元素逆序(例如[1, 2, 3] -> [3, 2, 1])(注意:不要使用列表自带的逆序函数)
    reverse_order = lambda x:x[::-1]
    print(reverse_order([1,5,2,7]))
    
    result:
    [7, 2, 5, 1]
    
    2.写一个函数,提取出字符串中所有奇数位上的字符
    def uneven_str(str1):
        list2 = []
        for item in str1[::2]:
            list2.append(item)
        return list2
    
    print(uneven_str('ABCDEFGHIJK'))
    
    result:
    ['A', 'C', 'E', 'G', 'I', 'K']
    
    3.写一个匿名函数,判断指定的年是否是闰年
    leap_year = lambda x:bool(x // 4 and not x // 100 or x // 400) 
    print(leap_year(400))
    
    result:
    True
    
    4.使用递归打印:
    def recursion(n): #注意判断递归的函数执行顺序,一层一层的剥开解读。
        """
        递归打印@
        :param n: 行数
        :return: None
        """
        if not n:
            return
        recursion(n-1)
        print('@'*n)
    recursion(5)
    
    result:
    @
    @@
    @@@
    @@@@
    @@@@@
    
    5.写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
    def check_list(list1):
        for item in list1[::-1]:
            if len(list1) > 2:
                list1.remove(item)
        return list1
    
    check = check_list([1,2])
    print(check)
    
    result:
    [1, 2]
    
    6.写函数,利用递归获取斐波那契数列中的第 10 个数,并将该值返回给调用者。
    def fibonacci(n):
        if n == 1 or n == 2:
            return 1
        else:
            return fibonacci(n-1)+fibonacci(n-2)
    fibo = fibonacci(10)
    print(fibo)
    
    result:
    55
    
    7.写一个函数,获取列表中的成绩的平均值,和最高分
    def average_best(list1):
        list1.sort()
        return (sum(list1)/len(list1),list1[-1])
    
    ave_b =average_best([10,20,30,40])
    print(ave_b)
    
    result:
    (25.0, 40)
    
    8.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新的列表返回给调用者
    def uneven_index(*seq):
        return list(seq[::2])
    ue_index = uneven_index('a','b','c','d')
    print(ue_index)
    
    result:
    ['a', 'c']
    
    9.写一个属于自己的数学模块(封装自己认为以后常用的数学相关的函数和变量)和列表模块(封装自己认为以后常用的列表相关的操作)
    '''
     没得想法,数学有运算符有math模块,list有切片,和c语言相比,简直无敌,还有列表函数。
    '''
    def func():
        a = []
        for i in range(5):
            a.append(lambda x:x * i)
        return a
    aa = func()
    print(aa[0](2),aa[2](2),aa[3](2))
    '''
    注意:由于闭包特性,在函数中的子函数并不会立即执行,而是全部放入到list中,并且i值随遍历变成4
     因此所得结果都是8
    '''
    

    相关文章

      网友评论

          本文标题:day9-函数2-homework

          本文链接:https://www.haomeiwen.com/subject/ohsjwftx.html