Python Task06:函数与Lambda表达式

Python Task06:函数与Lambda表达式

  1. 怎么给函数编写⽂档?

    添加注释(以 # 开头的内容):
    添加独⽴的文档字符串

  2. 怎么给函数参数和返回值注解?

    参数注解:在定义函数的时候,在参数列表内部的参数后面加上冒号和要传入的类型

    def accumlate(x:int, y:int):
        return x*y
    12
    

    返回值注解:在参数列表后面,冒号前面,增加一个 -> 符号,后面写返回值的类型。

    def accumlate(x:int, y:int) -> int:
        return x*y
    12
    

    这些注解都会以字典的形式存在函数的 .annotations 属性中。

    accumlate.__annotations__
    {'x': int, 'y': int, 'return': int}
    
    print(accumlate.__annotations__)
    {'x': <class 'int'>, 'y': <class 'int'>, 'return': <class 'int'>}
    12345
    123456
    

    输出字典中的value存的是数据的type,即类型。

  3. 闭包中,怎么对数字、字符串、元组等不可变元素更新。

    如果要修改闭包作用域中的变量则需要 nonlocal 关键字

  4. 分别根据每一行的首元素和尾元素大小对二维列表 a = [[6, 5], [3, 7], [2, 8]] 排序。(利用lambda表达式)

    a = [[6, 5], [3, 7], [2, 8]]
    a.sort( key=lambda a:a[0])
    print(a)
    a.sort( key=lambda a:a[1])
    print(a)
    12345
    
  5. 利用python解决汉诺塔问题?

有a、b、c三根柱子,在a柱子上从下往上按照大小顺序摞着64片圆盘,把圆盘从下面开始按大小顺序重新摆放在c柱子上,尝试用函数来模拟解决的过程。(提示:将问题简化为已经成功地将a柱上面的63个盘子移到了b柱)

def f(a):
    new=list(reversed(a))  
    return new    
a=list(range(64))
c=f(f(a))
print(c)
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页