python中的middle_Python中的函数(3)

一、包含返回值的函数

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

defget_formatted_name(first_name,last_name):"""返回整洁的姓名"""full_name= first_name + ' ' +last_namereturnfull_name.title()

myname= get_formatted_name('Joker','Pan')print(myname)

console:

1597780-20190604212239253-145234845.png

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

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

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

二、让实参变成可选的

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

使用默认值。

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

defget_formatted_name(first_name,middle_name,last_name):"""返回整洁的姓名"""full_name= first_name + ' ' + middle_name + ' ' +last_namereturnfull_name.title()

myname= get_formatted_name('Joker','smith','Pan')print(myname)

console:

1597780-20190604213914988-1777317599.png

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

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

def get_formatted_name(first_name,last_name,middle_name=''):"""返回整洁的姓名"""

ifmiddle_name :

full_name= first_name + ' ' + middle_name + ' ' +last_nameelse:

full_name= first_name + ' ' +last_namereturnfull_name.title()

myname= get_formatted_name('Joker','Pan','smith')print(myname)

other_name= get_formatted_name('jack','chen')print(other_name)

console:

1597780-20190604214900726-590184572.png

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

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

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

名的人调用。

三、返回字典

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

defgenerate_person(first_name,last_name):

person= {'first':first_name,'last':last_name}returnperson

myinfo= generate_person('joker','pan')print(myinfo)

console:

1597780-20190604215733977-1218446101.png

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值