zoukankan      html  css  js  c++  java
  • Python练习_高阶函数_day11

    1,写函数,传入n个数,返回字典{‘max’:最大值,’min’:最小值}
    例如:min_max(2,5,7,8,4) 返回:{‘max’:8,’min’:2}(此题用到max(),min()内置函数)
    
    
    1.
    1.作业
    1,写函数,传入n个数,返回字典{‘max’:最大值,’min’:最小值}
    例如:min_max(2,5,7,8,4) 返回:{‘max’:8,’min’:2}(此题用到max(),min()内置函数)
    
    2,写函数,传入一个参数n,返回n的阶乘
    例如:cal(7)  计算7*6*5*4*3*2*1
    
    3,写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组
    例如:[(‘红桃’,2),(‘梅花’,2), …(‘黑桃’,‘A’)]
    
    4,有如下函数:
    def wrapper():
        def inner():
            print(666)
    wrapper()
    
    你可以任意添加代码,用两种或以上的方法,执行inner函数.
    
    5,相关面试题(先从纸上写好答案,然后在运行):
    5.1,有函数定义如下:
    def calc(a,b,c,d=1,e=2):
        return (a+b)*(c-d)+e
    请分别写出下列标号代码的输出结果,如果出错请写出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))_____
    
    5.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)
       
    
    5.3,写代码完成99乘法表.(升级题)
    1 * 1 = 1  
    2 * 1 = 2 2 * 2 = 4  
    3 * 1 = 3 3 * 2 = 6 3 * 3 = 9  
    ......
    9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81  

    默写

    1,什么是闭包。
    2,迭代器的好处。
    3,用while循环模拟for循环(写具体代码)。

    答案

    1、写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组。例如:[(‘红心’,2), (‘草花’,2), …(‘黑桃,‘A’)]

    def cards():
        num=[]
        for v in range(2,11):
            num.append(v)
        num.extend(['J','Q','K','A'])
        type=['红心','草花','方块','黑桃']
        result=[]
        for i in num:
            for j in type:
                result.append((j,i))
        return result
    
    print(cards())

    2、写函数,传入n个数,返回字典:{‘max’:最大值,’min’:最小值}。例如: min_max(2, 5, 7, 8, 4),返回: {‘max’:8,’min’:2}

    def max_min(*args):
        the_max=args[0]
        the_min=args[0]
        for i in args:
            if i>the_max:
                the_max=i
            if i<the_min:
                the_min=i
        return {'max':the_max,'min':the_min}
    print(max_min(2,4,1,55,-3))

    3、写函数,专门计算图形的面积。其中嵌套函数,计算圆的面积,正方形的面积和长方形的面积

       调用函数area(‘圆形’, 圆半径)  返回圆的面积
      调用函数area(‘正方形’, 边长) 返回正方形的面积
      调用函数area(‘长方形’, 长,宽) 返回长方形的面积
    #方法一:
    import math
    def area(name,*args):
        def areas_rectangle(x,y):
            return x*y
    
        def area_square(x):
            return x**2
    
        def area_round(r):
            return math.pi*r*r
    
        if name=="圆形":
            return  area_round(*args)
        elif name=="正方形":
            return area_square(*args)
        elif name=="长方形":
            return areas_rectangle(*args)
    
    print(area('长方形', 3, 4))
    print(area('圆形', 3))
    print(area('正方形', 3))

    -

    #方法二(eval)
    import math
    def area(name,*args):
        def rectangle(x,y):
            return x*y
    
        def square(x):
            return x**2
    
        def round(r):
            return math.pi*r*r
        if name in locals():
            return eval(name)(*args)
    print(area('rectangle',13,2))
    4、写函数,传入一个参数n,返回n的阶乘。例如: cal(7) 计算7 * 6 * 5 * 4 * 3 * 2 * 1
    ef cal(n):
        result=1
        for i in range(n,0,-1):
            result=result*i
        return result
    
    print(cal(7))

    5、斐波那契数列:[1,1,2,3,5,8,13,...],每个元素为前两个元素之和

      (1)当要求长度小于某个值的时候:

    l = [1,1]
    while len(l)<20:
        l.append(l[-1]+l[-2])
    print(l)

    (2)当要求小于某个数的时候:

    l = [1,1]
    while l[-1]<4000000:
        l.append(l[-1]+l[-2])
    del l[-1]
    print(l)



  • 相关阅读:
    转:一道笔试题-将int型数组强制转换为char*,再求strlen,涉及大小端
    转:git windows中文 乱码问题解决汇总
    git教程1
    刘汝佳黑书 pku等oj题目
    C/C++ qsort()快速排序用法
    char s[]字串和char *s字串有什麼区别?
    c语言‘’ ,‘0’, “0” ,0之间的区别
    带符号的char类型取值范围为什么是-128——127
    c语言memset详解
    【线性规划与网络流24题】孤岛营救问题 分层图
  • 原文地址:https://www.cnblogs.com/dongye95/p/10193449.html
Copyright © 2011-2022 走看看