python 从入门到实践_Python编程从入门到实践日记Day28

Python编程从入门到实践日记Day28

第7章 函数(四)

1.返回值

函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值。函数返回的值被称为返回值。在函数中,可使用return语句将值返回到调用函数的代码行。返回值让你能够将程序的大部分繁重工作移到函数中去完成,从而简化主程序。

—  返回简单值

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

64ea070335c2e67321588b07f85cd60d.png

函数get_formatted_name()的定义通过形参接受名和姓。它将姓和名合二为一,在它们之间加上一个空格,并将结果存储在变量full_name中。然后,将full_name的值转换为首字母大写格式,并将结果返回到函数调用行。

调用返回值得函数时,需要提供一个变量,用于存储返回的值。在这里,将返回值存储在了变量musician中。输出为整洁的名字:

aab500caaa63ffab9e5ef673bf20fc26.png

在需要分别存储大量名和姓的大型程序中,像get_formatted_name()这样的函数非常有用。你分别存储名和姓,每当需要显示姓名时都调用这个函数。

—  让实参变成可选的

有时候,需要让实参变成可选的,这样使用函数的人就只需在必要时才提供额外的信息。可使用默认值来让实参变成可选的。

例如,假设我们要扩展函数get_formatted_name(),使其还处理中间名,为此,可将其修改成类似于下面这样:

219328f5167dcb973afbd144fd431d46.png

只要同时提供名、中间名和姓,这个函数就能正确地运行。它根据这三部分创建一个字符串,在适当的地方加上空格,并将结果转换为首字母大写格式:

f7e64a9f9d7dd0d0155d01276086289d.png

然而,并非所有人都有中间名,但如果你调用这个函数时只提供了名和姓,它将不能正确地运行。为了让中间名变为可选的,可给实参middle_name()指定一个默认值—空字符串,并在用户没有提供中间名时不使用这个实参。为让get_formatted_name()在没有提供中间名时依然可行,可给实参middle_name指定一个默认值—空字符串,并将其移到形参列表的末尾。

e93b6016444bac2aa76bd006d2bab343.png

在这个示例中,姓名是根据三个可能提供的部分创建的。由于人都有名和姓,因此在函数定义中首先列出了这两个形参。中间名是可选的,因此在函数定义中最后列出该形参,并将其默认值设置为空字符串。

在函数体中,我们检查用户是否提供了中间名。Python将非空字符串解读为True,所以如果函数调用提供了中间名,if middle_name将为True。若提供了中间名,就将名、中间名和姓合并为姓名,返回到函数调用行。我们将返回的值存储在变量musician中,然后将这个变量的值打印出来。若没有提供中间名,middle_name则为空字符串,if测试未通过,进而执行else代码块:只有名和姓生成姓名,将设置好格式的姓名返回给函数调用行,再将返回的值存储在变量musician中,最后将这个变量的值打印出来。

当调用这个函数时,若只想指定名和姓,调用就非常简单;若还要指定中间名,就必须确保它是最后一个实参,这样Python才能正确地将位置实参关联到形参。

这个修改后的版本适用于只有名和姓的人,也适用于还有中间名的人:

5533e93f45ae84520ecd4eae52837b32.png
_

如果大家有什么好的意见或建议,记得留言哦!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值