Day 6 函数与Lambda表达式

函数与Lambda表达式

练习1
怎么给函数编写⽂档?

def MyFirstFunction(name):
    "函数定义过程中name是形参"
    # 因为Ta只是一个形式,表示占据一个参数位置
    print('传递进来的{0}叫做实参,因为Ta是具体的参数值!'.format(name))


MyFirstFunction('老马的程序人生')
# 传递进来的老马的程序人生叫做实参,因为Ta是具体的参数值!

print(MyFirstFunction.__doc__)

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

#与给函数编写文档类似
def func(x: int, y: int) -> int:
    '''return type int, return x add y '''
    return x+y
print(func(1,3)) # 4

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

#如果要修改闭包作用域中的变量则需要 nonlocal 关键字
def outer():
    num = 10

    def inner():
        nonlocal num  # nonlocal关键字声明
        num = 100
        print(num)

    inner()
    print(num)


outer()

# 100
# 100

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

a = [[6, 5], [3, 7], [2, 8]]
a = sorted(a,key=lambda i:i[0])
print(a)
a = sorted(a,key=lambda i:i[-1])
print(a)
#[[2, 8], [3, 7], [6, 5]]
#[[6, 5], [3, 7], [2, 8]]

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

def hlt(n, a, b, c):
    if n == 1:
        print(a, "->", c)
    else:
        print(a, "->", b)
        hlt(n - 1, a, b, c)
        print(b, "->", c)


hlt(64, "a", "b", "c")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值