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)
  • 相关阅读:
    非易失性Flash详解
    易失性存储器SRAM基础知识
    嵌入式STT-MRAM效应与流致反转
    访问SDRAM的低功耗优化设计方案
    SRAM的容量扩展
    SDRAM功耗来源
    如何使FRAM MCU速度更快所需功耗最低
    Nand Flash结构及错误机制
    提升SRAM性能的传统方法
    word在一个文档中使用多个页码,页眉
  • 原文地址:https://www.cnblogs.com/show530/p/12469366.html
Copyright © 2011-2022 走看看