zoukankan      html  css  js  c++  java
  • 函数传递列表练习题

    用到的知识点:

    1、函数可以传递列表

    2、函数可以修改列表

    3、如果不想用函数修改列表,则可以用function_name(list_name[:]) 创建列表的副本,对列表副本进行操作。

    不变的魔术师:修改你为完成练习 8-10 而编写的程序,在调用函数make_great()时,向它传递魔术师列表的副本。由于不想修改原始列表,请返回修改后的列表,并将其存储到另一个列表中。分别使用这两个列表来调用 show_magicians(),确认一个列表包含的是原来的魔术师名字,而另一个列表包含的是添加了字样“the Great”的魔术师名字。 

    def show_magicians(names):
        for name in names:
            print(name.title())
    
    def make_great(names):
        for i in range(len(great_names)):
            great_names[i]='The great '+great_names[i]
        return great_names
    
    magicians_names = ['hong tao','xiao weihong','hong yumi','hong yuchan']
    
    great_names=magicians_names[:]
    
    make_great(great_names)
    
    show_magicians(magicians_names)
    
    show_magicians(great_names)

    下午找了一些资料,觉得上面的写法太low了,于是我定义了三个函数:

    第一个函数是纯粹的传递列表,

    第二个函数是修改列表内容,

    第三个函数是对比,观察创建列表副本和不创建有什么区别

    def show_magicians(names):
        for name in names:
            print(name.title())
    
    
    def make_great(names):
        for i in range(len(names)):
            names[i]="The great "+names[i].title()
        return names
    
    def contrast(names):
        print('Before execution :'+str(magicians_names))
        make_great(magicians_names[:])
        print('After execution :' + str(magicians_names))
    
    def contrast2(names):
        print('Before execution :'+str(magicians_names))
        make_great(magicians_names)
        print('After execution :' + str(magicians_names))
    
    magicians_names = ['hong tao','xiao weihong','hong yumi','hong yuchan']
    
    contrast(magicians_names)
    
    contrast2(magicians_names)

    附:网上最有名的关于函数传递列表的教程:

    https://blog.csdn.net/sinat_38682860/article/details/88618603

    def send_invitation(exports,informed):
        while exports:
            export=exports.pop()
            print(export+" 您好,现在邀请您参加会议....")
            informed.append(export)
    
    def print_invitation(exports,informed):
        print('执行前:experts= '+str(exports)+' ,informed= '+str(informed))
        send_invitation(exports[:],informed)
        print('执行后:experts= '+str(exports)+' ,informed= '+str(informed))
    
    
    exports=['洪韬','肖伟宏','洪语禅','洪语谧']
    informed = []
    
    print_invitation(exports,informed)
  • 相关阅读:
    《软件工程》团队第一阶段Sprint检查表
    灭霸第一阶段绩效评估
    【Copy攻城狮日志】docker搭建jenkins拉取svn代码打包vue项目部署到nginx
    前端移动App开发环境搭建
    【Copy攻城狮日志】Node快速重命名文件,告别Potplay字幕困扰问题
    centos部署yapi爬坑记
    mint-ui之picker爬坑记
    前端内网穿透,localtunnel你值得拥有!
    Visual Studio Live Share不完全指北
    jq跑马灯效果
  • 原文地址:https://www.cnblogs.com/show530/p/12469366.html
Copyright © 2011-2022 走看看