【Python编程-从入门到实践】练习题8-9 魔术师、练习题8-10 了不起的魔术师、练习题8-11 不变的魔术师

练习题8-9 魔术师:

1.创建一个包含魔术师名字的列表,并将其传递给一个名为show_magicians()的函数,这个函数打印列表中每个魔术师的名字。

def show_magicians(magician_b):
    """显示魔术师"""
    for magician in magician_b:
        print(magician)

m = ['魔术师1', '魔术师2', '魔术师3']
show_magicians(m)

执行结果:
在这里插入图片描述

练习题8-10 了不起的魔术师:

2.在你为完成以上练习而编写的程序中,编写一个名为make_great()函数,对魔术师列表进行修改,在每个魔术师的名字中都加入字样“the great”,调用函数show_magicians(),确认魔术师列表确实变了。
o

def show_magicians(magician_b):
    """显示魔术师"""
    for magician in magician_b:
        print(magician)

def make_great(magician_a):
    """了不起的魔术师"""
    i = 0
    while i < len(magician_a):
        magician_a[i] = 'thegreat'.title() + magician_a[i]
        i += 1
    return magician_a
    
m = ['魔术师1', '魔术师2', '魔术师3']

make_great(m)	#调用函数修改列表
show_magicians(m)	#调用函数查看列表,发现确实改变

执行结果:
在这里插入图片描述

练习题8-11 不变的魔术师:

3.修改你上面的代码,在调用函数make_great()时,向它传递魔术师列表的副本,由于不想修改原始列表,请返回修改后的列表,并将其存储到另一个列表中,分别使用这两个列表来调用show_magicians(),确认一个列表包含的是原来的魔术师名字,而另一个列表包含的是添加了字样“the great”的魔术师名字。

其实8-10的方法可以接着用,只需要调用make_great()函数时传递副本即可:make_great(m[:]) 但是这种方法不符合这道题的意思,这道题明确告诉你,需要创建空列表,并把新值存到新列表里。

def show_magicians(magician_b):
    """显示魔术师"""   
    for magician in magician_b:
        print(magician)
        
def make_great(magician_a,magician_b):
    """了不起的魔术师"""   
    while magician_a: 	#这句话的意思是,只要magician_a列表不为空,循环继续
        magician = 'thegreat'.title() + ' ' + magician_a.pop().title()
        magician_b.append(magician)
    return magician_b
    
m = ['魔术师1', '魔术师2', '魔术师3']
n = []

make_great(m[:], n)	#传递参数,传递的是副本,建议深入理解m[:],而不是死记硬背
show_magicians(n)	#查看新列表
show_magicians(m)	#查看原列表

执行结果:
在这里插入图片描述

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值