说在前面。
分享交流,乐于探讨。《python编程从入门到实践》自学。
8-9 魔术师:创建一个包含魔术师名字的列表,并将其传递给一个名为show_magicians()
的函数,这个函数打印列表中每个魔术师的名字。
8-10 了不起的魔术师:在你为完成练习 8-9 而编写的程序中,编写一个名为make_great()的函数,对魔术师列表进行修改,在每个魔术师的名字中都加入字样“the Great”。调用函数 show_magicians()
,确认魔术师列表确实变了。
8-11 不变的魔术师:修改你为完成练习 8-10 而编写的程序,在调用函数make_great()
时,向它传递魔术师列表的副本。由于不想修改原始列表,请返回修改后的列表,并将其存储到另一个列表中。分别使用这两个列表来调用 show_magicians()
,确认一个列表包含的是原来的魔术师名字,而另一个列表包含的是添加了字样"the Great"的魔术师名字。
# -*- coding:utf-8 -*-
# coding=gbk
#动手试一试8-6
def show_magicians (list_name):
""" 打印列表中每个魔术师的名字 """
for name in list_name:
print(name.title())
def make_great (list_name, great_maked):
""" 在列表中添加the Great字样"""
for name in list_name:#这里遍历列表其实还可以用前面的例子pop()一个一个弹出来,一样的。
great_name = 'the Great ' + name # 因为列表都是字符串,所以我直接相连
great_maked.append(great_name)
return great_maked #我这里直接返回添加好字样的列表。方便操作
magicians_name = ['harry houdini', 'criss angel', 'cyril']
show_magicians(magicians_name)
great_model = []
#修改成副本:用切片表示法[:]
show_magicians (make_great(magicians_name[:], great_model))
show_magicians(magicians_name) # 验证8-11的效果
def make_great (list_name, great_maked):
""" 在列表中添加the Great字样"""
for name in list_name:
great_name = 'the Great ' + name
great_maked.append(great_name)
#不要用return清楚点的话。8-10的函数也可以这么写,调用的话如下
great_model = []
make_great(magicians_name[:], great_model)
show_magicians(great_model)
如果出现SyntaxError: (unicode error) ‘utf-8’ codec can’t decode byte 0xb4 in position 1: invalid start byte。这样的错误的话,更改一下编码模式如下图