返回介绍

第二个例子:寻找序列的交集

发布于 2024-01-29 22:24:16 字数 742 浏览 0 评论 0 收藏 0

让我们看一下第二个函数的例子,这个例子要比将参数相乘更有用一些,也能够进一步地解释函数的基本概念。

在第13章中,我们编写了一个loop循环,搜索两个字符串公共元素。我们发现那段代码并不是想象的那么有用,因为这个程序被设置为只能列出定义好的变量并且不能继续使用。当然,我们可以在需要它的每一个地方都使用拷贝粘贴的方法,但是这样的解决方案既不好也不通用——我们还是得编辑每一份拷贝的内容,将它换成不同的序列名称,并且改变不同拷贝所需要的算法。

定义

到现在,你也许已经猜到了解决这种困境的办法:将这个for循环封装在一个函数之中。这样做的好处如下。

·把代码放在函数中让它能够成为一个想运行多少次就运行多少次的工具。

·因为调用者可以传递任意类型的参数,函数对于任意两个希望寻找其交集的序列(或者其他可迭代的类型)都是通用的。

·当逻辑由一个函数进行封装的时候,一旦需要修改重复性的任务,只需要在函数里进行修改搜索交集的方式就可以了。

实际效果就是,将代码封装在函数中,使它成为一个通用搜索交集的工具。

·在模块文件中编写函数意味着它可以被计算机中的任意程序来导入和重用。

将第13章的简单代码转化为这样的函数是很直接的。我们就是把原先的逻辑编写在def头部之后,并且让被操作的对象变成被传递进入的参数。为了实现这个函数的功能,我们增加了一条return语句来将最终结果的对象返回给调用者。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文