鱼C论坛

 找回密码
 立即注册
查看: 2798|回复: 1

[已解决]新人代码问题请教

[复制链接]
发表于 2017-6-2 12:23:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 泡泡龙H 于 2017-6-2 12:29 编辑

8-9 魔术师 :创建一个包含魔术师名字的列表,并将其传递给一个名为 show_magicians() 的函数,这个函数打印列表中每个魔术师的名字。
8-10 了不起的魔术师 :在你为完成练习 8-9 而编写的程序中,编写一个名为 make_great() 的函数,对魔术师列表进行修改,在每个魔术师的名字中都加入字样 “the Great” 。调用函数 show_magicians() ,确认魔术师列表确实变了。

求教这道题中8-10应该怎么写比较简洁。
刚开始我在函数中直接修改列表元素的值,最终在打印列表的的时候,列表还是修改前的。这是为什么呢?
  1. def show_magicians(magicians):
  2.     """打印列表magicians中所有值"""
  3.     for magician in magicians:
  4.         print(magician.title())

  5. def make_greet(magicians):
  6.     """在列表magicians中的每个元素前加上‘The greet’"""
  7.     greet_magicians = []
  8.     for magician in magicians:
  9.         magician = 'The greet ' + magician
复制代码


于是我又尝试了下,按如下代码:能够达到题目的要求,但是感觉代码写的有点笨拙。请大神指教。
  1. def show_magicians(magicians):
  2.     """打印列表magicians中所有值"""
  3.     for magician in magicians:
  4.         print(magician.title())

  5. def make_greet(magicians):
  6.     """在列表magicians中的每个元素前加上‘The greet’"""
  7.     greet_magicians = []
  8.     for magician in magicians:
  9.         greet_magician = 'The greet ' + magician.title()
  10.         greet_magicians.append(greet_magician)
  11.     while magicians:
  12.         magicians.pop()
  13.     for greet_magician in greet_magicians:
  14.         magicians.append(greet_magician)
复制代码


调用函数:
  1. magicians1 = ['jack','divid']
  2. show_magicians(magicians1)
  3. make_greet(magicians1)
  4. print(magicians1)
复制代码
最佳答案
2017-6-2 17:23:18
def show_magicians(magicians):
    """打印列表magicians中所有值"""
    for magician in magicians:
        print(magician)

def make_greet(magicians):
    """在列表magicians中的每个元素前加上‘The greet’"""
    for i in range(len(magicians)):
        magicians[i] = 'The greet ' + magicians[i]
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-6-2 17:23:18 | 显示全部楼层    本楼为最佳答案   
def show_magicians(magicians):
    """打印列表magicians中所有值"""
    for magician in magicians:
        print(magician)

def make_greet(magicians):
    """在列表magicians中的每个元素前加上‘The greet’"""
    for i in range(len(magicians)):
        magicians[i] = 'The greet ' + magicians[i]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-27 20:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表