python新手 第一个用了函数,第二个没用,理论上应该是相同的,可两段函数的输出结果还是不一样?

2025-03-21 09:34:53
推荐回答(3个)
回答1:

#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)

回答2:

#1 改成下面就一样了

def make_greate(magicians)
    return ..........

magicians = make_great(magicians)

回答3:

其它代码不变,更改函数体如下

def make_great(magicians):
    temp = [ 'the Great '+ i for i in magicians   ]
    del magicians[:]
    for i in temp:magicians.append(i)