Python新手入门之函数(二)

1.3 返回值
函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值。函数返回的值被称为返回值。在函数中,可使用return 语句将值返回到调用函数的代码行。返回值让你能够将程序的大部分繁重工作移到函数中去完成,从而简化主程序。
(一)返回简单值
可以直接给与函数的值返回,示例如下:
在这里插入图片描述
执行结果:
在这里插入图片描述
(二)让实参变成可选的
有时候,需要让实参变成可选的,这样使用函数的人就只需在必要时才提供额外的信息。可使用默认值来让实参变成可选的。接着上面的示例,假设有的人有中间名,有的人没有,这时候就需要进行选择。在函数体中,我们检查是否提供了中间名。Python将非空字符串解读为True,因此如果函数调用中提供了中间名。示例如下:
在这里插入图片描述
执行结果:
在这里插入图片描述
(三)返回字典
函数可返回任何类型的值,包括列表和字典等较复杂的数据结构。例如,下面的函数接受姓名的组成部分,并返回一个表示人的字典。示例如下:
在这里插入图片描述
执行结果:
在这里插入图片描述
(四)结合使用函数和while循环
可结合使用函数get_formatted_name()和while循环。示例如下:
在这里插入图片描述
执行结果:
在这里插入图片描述
1.4 传递列表
列表包含的可能是名字、数字或更复杂的对象(如字典)。将列表传递给函数后,函数就能直接访问其内容。下面使用函数来提高处理列表的效率。示例如下:
在这里插入图片描述
执行结果:
在这里插入图片描述
(一)在函数中修改列表
将列表传递给函数后,函数就可对其进行修改。在函数中对这个列表所做的任何修改都是永久性的,这让你能够高效地处理大量的数据。
在这里插入图片描述
执行结果:
在这里插入图片描述
(二)禁止函数修改列表
有时候,需要禁止函数修改列表。例如,假设像前一个示例那样,你有一个未购买的商品列表,并编写了一个将这些商品移到已购买列表中的函数。你可能会做出这样的决定:即便购买所有商品后,也要保留原来的未购买的商品列表,以供备案。但由于你将所有的设计都移出了unbought_snacks,这个列表变成了空的,原来的列表没有了。为解决这个问题,可向函数传递列表的副本而不是原件;这样函数所做的任何修改都只影响副本,而丝毫不影响原件。
要将列表的副本传递给函数,可以像下面这样做:
function_name(list_name[:])
切片表示法[:] 创建列表的副本。在buy_snacks.py中,如果不想清空未购买的商品列表,可像下面这样调用buy_snacks():
buy_snacks(unbought_snacks[:], completed_snacks)
这样函数print_snackls() 依然能够完成其工作,因为它获得了所有未打印的设计的名称,但它使用的是列表unbought_snacks 的副本,而不是列 表unbought_snacks 本身。像以前一样,列表completed_snacks 也将包含打印好的模型的名称,但函数所做的修改不会影响到列表unbought_snacks。
示例如下:
在这里插入图片描述
执行结果:
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值