想咨询一下,为什么通过下面 for 的形式没有办法 在 各个姓名前面加 the great呢

lyw2073327 2020-11-10 07:00:08
这是书上的一个练习题,要在每个魔术师名字前面加 the great,并且调用 def show_magicians(old_magics) 的内容来输出,有看过例子是通过while i < len()的方式来操作的,然后就想了解一下通过for的形式为什么无法调用呢,我这个代码的问题出在哪里呢

def show_magicians(old_magics):
for magic_name in old_magics:
print(magic_name)


def make_great(old_magics):
for old_magic in old_magics:
old_magic = 'the great '.title() + old_magic
return old_magics


k = ['Ketty', 'Jerry', 'Max', 'Tom']
make_great(k)
show_magicians(k)
...全文
223 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
chuifengde 2020-11-11
  • 打赏
  • 举报
回复
你代码的问题在于: make_great中的 old_magic是old_magics中每个零件的复制品,然后将每个复制品用the great加了下工 你应该是理解成了,old_magic是从old_magics中取出的零件,加完工后再给old_magics安上去了。 取出来加工后再安上去用的是二楼的或者直接用列表推导式.
Bedmound 2020-11-11
  • 打赏
  • 举报
回复
楼上的make_great 不需要返回值
lyw2073327 2020-11-11
  • 打赏
  • 举报
回复
不好意思还有一点,就是 while i < len(new_magics) 这个应该怎么理解呢 def make_great(new_magics): i = 0 while i < len(new_magics): new_magics[i] = 'the great '.title() + new_magics[i]
lyw2073327 2020-11-11
  • 打赏
  • 举报
回复
好像有点明白了,for函数的就是通过for来循环引用old_magics里的数据,而while函数则通过 i += 1 的方式来循环引用,那这样的话还有一点疑问,就是如果通过for函数的话,是不是一定要通过 for i,old_magic in enumerate(old_magics) 的形式(即要设置enumerate函数来获取索引和对象),否则光靠 for 函数是无法实现引用输出的呢
lyw2073327 2020-11-11
  • 打赏
  • 举报
回复
@chuifengde@欢乐的小猪 了解了,另外我看到网上还有一种做法是这样(如下),这个代码里 new_magics[i] = 'the great '.title() + new_magics[i] ,是前后都有 [i],这个[i] 我应该怎么理解比较好呢 def make_great(new_magics): i = 0 while i < len(new_magics): new_magics[i] = 'the great '.title() + new_magics[i] i += 1 # 也可以写成 i = i+1 return new_magics
欢乐的小猪 2020-11-10
  • 打赏
  • 举报
回复
def show_magicians(old_magics):
    for magic_name in old_magics:
        print(magic_name)


def make_great(old_magics):
    for i,old_magic in enumerate(old_magics) :
        old_magics[i] = 'the great '.title() + old_magic
    return old_magics


k = ['Ketty', 'Jerry', 'Max', 'Tom']
make_great(k)
show_magicians(k)

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧