我自己为这个任务编写了代码,如下所示:
def showmagicians(magician_names):
for name in magician_names:
print(name)
def make_great(magician_names):
the_greats = []
**for name in magician_names:**
the_great = name +'_the_great'
pop_name = magician_names.pop()
the_greats.append(the_great)
for the_great in the_greats:
magician_names.append(the_great)
return magician_names
magician_names = ['harry','david']
showmagicians(magician_names)
make_great(magician_names)
print(magician_names)
**Output:
harry
david
['harry', 'harry_the_great']**我没有在‘make_great function’中使用'while‘语句,而是使用了'for’语句,并且输出是错误的。但我看不出这两者之间有什么区别。
该任务要求我们输出带有'the great‘后缀的'magician_names’。这本书提供的代码在这里列出:https://ehmatthes.github.io/pcc/solutions/chapter_8.html#8-6-city-names谁能告诉我有什么区别?
发布于 2021-05-30 17:02:40
您正在magician_names上迭代,因此向前移动和 pop (删除项),因此向后移动
在harry
david
['harry', 'david']游标,因此harry上迭代
让您的方法make_great返回the_greats列表,并将其赋给主代码中的一个变量,这样就很好了
def make_great(magician_names):
the_greats = []
for name in magician_names:
the_great = name + '_the_great'
the_greats.append(the_great)
return the_greats
magician_names = ['harry', 'david']
print(magician_names) # ['harry', 'david']
magician_names = make_great(magician_names)
print(magician_names) # ['harry_the_great', 'david_the_great']列表理解版本
def make_great(magician_names):
return [name + '_the_great' for name in magician_names]https://stackoverflow.com/questions/67759428
复制相似问题