#1 make_great函数的内部变量magicians运算之后,没有返回值传给外部的magicians,所以打印的仍然是原值
['edward', 'peter', 'johnson']
#2 运算直接操作外部变量,结果为
['the Great edward', 'the Great peter', 'the Great johnson']
函数希望得到同样的结果,可以
def make_great(magicians):
return ['the Great '+magician for magician in magicians]
magicians=['edward', 'peter', 'johnson']
magicians=make_great(magicians)
print(magicians)
#1 改成下面就一样了
def make_greate(magicians)
return ..........
magicians = make_great(magicians)
其它代码不变,更改函数体如下
def make_great(magicians):
temp = [ 'the Great '+ i for i in magicians ]
del magicians[:]
for i in temp:magicians.append(i)