• Python中的函数(3)


    一、包含返回值的函数

    下面来看一个函数,它接收名和姓并返回完整的姓名:

    def get_formatted_name(first_name,last_name):
        """返回整洁的姓名"""
        full_name = first_name + ' ' + last_name
        return full_name.title()
        
    myname = get_formatted_name('Joker','Pan')
    print(myname)

    console:

    解释:函数 get_formatted_name() 的定义通过形参接收名和姓。它将姓和名合二为一,在它们之间加上空格,

    并将结果存储在变量full_name中。然后将full_name 转为首字母大写的格式,并将结果返回给函数调用者。调

    用有返回值的函数时需要一个变量接收这个参数,这里将返回值存储在了变量 myname 中,然后打印了myname。

    二、让实参变成可选的

    有时候需要将实参变成可选的,这样使用函数的人就只需要在必要的时候才提供额外的信息。实现方法就是

    使用默认值。

    如果上面的函数 get_formatted_user() 需要扩展一个信息如中间名,为此,可将其修改为类似下面这样:

    def get_formatted_name(first_name,middle_name,last_name):
        """返回整洁的姓名"""
        full_name = first_name + ' ' + middle_name + ' ' + last_name
        return full_name.title()
        
    myname = get_formatted_name('Joker','smith','Pan')
    print(myname)

    console:

    但是,可能不是所有的人都拥有中间名,所以需要让这个参数变为可选参数,如何去做?其实

    只需要给中间名赋一个默认值--空字符串就可以了。如下:

    def get_formatted_name(first_name,last_name,middle_name=''):
        """返回整洁的姓名"""
        if middle_name :
            full_name = first_name + ' ' + middle_name + ' ' + last_name
        else:
            full_name = first_name + ' ' + last_name 
        return full_name.title()
        
    myname = get_formatted_name('Joker','Pan','smith')
    print(myname)
    other_name = get_formatted_name('jack','chen')
    print(other_name)
        

    console:

     

    需要注意的是:中间名是可选的,因此在函数定义中最后列出该形参,并将其默认值设置为空字符串。

    在函数体中,我们做了判断,如果调用者提供了中间名, if middle_name 将为True,否则就为False,

    所以会根据条件分别去执行不同的代码。所以,这个函数现在既适合有中间名的人调用也适合没有中间

    名的人调用。

    三、返回字典

    函数可以返回任何类型的值,包括列表和字典等较复杂的数据结构。下面的函数接收姓和名,返回一个表示人的字典:

    def generate_person(first_name,last_name):
        person = {'first':first_name,'last':last_name}
        return person
        
    myinfo = generate_person('joker','pan')
    print(myinfo)

    console:

    解释:这个函数接受两个信息,名和姓,并将其存储在字典中并返回给调用者,可以看到控制台确实打印的是一个字典(因为它是用 { } 括起来的)。

      叫醒我的不是诗和远方,也不是眼前的苟且,而是快递小哥

  • 相关阅读:
    鸡啄米vc++2010系列9(对话框控件的Tab顺序)
    鸡啄米vc++2010系列8(对话框:为控件添加消息处理函数)
    鸡啄米vc++2010系列7(对话框:创建对话框类和添加控件变量)
    鸡啄米vc++2010系列6(对话框添加控件)
    鸡啄米vc++2010系列5( 对话框:创建对话框模板和修改对话框属性)
    鸡啄米vc++2010系列4(消息机制)
    鸡啄米vc++2010系列3(MFC应用程序框架分析)
    鸡啄米vc++2010系列2(项目文件分析)
    鸡啄米VC++2010系列1(解决方案与工程)
    opencv2.3.1在vs2010上的配置
  • 原文地址:https://www.cnblogs.com/tizer/p/10976446.html
Copyright © 2020-2023  润新知