6、函数与Lambda表达式

函数与Lambda表达式

练习题

  1. 怎么给函数编写⽂档?
  2. 怎么给函数参数和返回值注解?
  3. 闭包中,怎么对数字、字符串、元组等不可变元素更新。
  4. 分别根据每一行的首元素和尾元素大小对二维列表 a = [[6, 5], [3, 7], [2, 8]] 排序。(利用lambda表达式)
  5. 利用python解决汉诺塔问题?

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

# 1、
使用"doc"
# 2、
使用"""*args, **kwargs"""
# 3、
使用 nonlocal 关键字
# 4、
a = [[6, 5], [3, 7], [2, 8]] 
b = sorted(a, key=lambda x: x[0])
print(b)
c = sorted(a, key=lambda x: x[1])
print(c)
[[2, 8], [3, 7], [6, 5]]
[[6, 5], [3, 7], [2, 8]]
# 5、
def Hanoi(a, b, c, num=1):
    if not isinstance(num, int):
        raise TypeError('in Hanoi')
    if num < 1:
        raise ValueError('in Hanoi')
    
    if num == 1:
        print('{0}->{1}'.format(a, c))
        return
    else:
        Hanoi(a, c, b, num-1)
        print('{0}->{1}'.format(a, c))
        Hanoi(b, a, c, num-1)

Hanoi('a', 'b', 'c', 3)
a->c
a->b
c->b
a->c
b->a
b->c
a->c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值