首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python中的函数(1)

一个考生的疑惑,函数到底是什么?

几年前的一天,正是高考的备战日子,我和朋友正开车出去办事,他突然接到正在备战的小孩电话,问函数的问题,说总也不能明白函数的意义。

我们这些曾经经过高考的理工老司机便议论起来,一时竟不能完全给他说明白。

我们都知道函数的定义,教科书就在小孩身边,他更应该知道函数的定义,那为什么他总也不能彻底明白函数的意思呢?

今天,我们就一起来探讨一下这个问题。

函数在数学中的含义

作为一个外来词,函数的元尊是英语的Function

1859年李善兰与伟烈亚力合译《代数学》,将Function译作函数,他们给出的原因是“凡此变数中函彼变数者,则此为彼之函数”,翻译一下就是“凡是本变量中包含了其它变量,就称本变量为其它变量的函数”,这里的函如同信函的函,是包含的意思。这一译法据说也得到早期日本的认同,现在日本译为闭数

李善兰是清末的数学家,他翻译了《几何原本》等著作,微分,积分这些传神的翻译词汇给莘莘学子们带来了极大的方便,也被日本采纳。然而,函数这一翻译给初学的人,甚至相当多的老油条也带来了困惑。

我们来探究一下FUNCTION的含义吧!

匈牙利裔的美国数学家Paul Richard Halmos认为function的同义词是:mapping(映射),transformation(变换), correspondence(对应),operator(运算器),而function本身有功能的意思。我们的母语不是英语,但可以把上面的几个单词都看下,说明function是上面这些词义的综合。

有一个形象的示意图,可以直观地表示function的含义

你看,Function f就是一种功能转换器,将输入x转换为对应的输出f(x)。

function更文绉绉的定义是这样的:

如果x是集合X的一个元素,y是另一个集合Y(其实也可以是同一个集合X)的一个元素,那么建立元素y到元素x对应关系及其构建过程就称为function。如果function用f表示,那么这种对应关系就表示为:y=f(x)。读作“y等于x的f”,x是function的参数或输入,y是function值,或者叫 function输出。

显然这里的function指的是那种对应关系,我们也常说f是变量x的function。

这样看起来,李善兰的翻译并不准确,这也就是造成学生理解困难的原因吧。

首先,函数听起来就像一个数;另外,他的解释也并不准确,他把y叫做x的函数。

但作为一个严谨的大家,它把function译作函数应该不会是草率之作。实际上,在维基百科上,也有这种说法:行星的位置是时间的一个function(函数)(the position of a planet is a function of time),这里的准确说法应该是行星的位置是时间的一个function(函数)值。我在想,这只是一种不严谨的习惯说法吧!

好了,可以再看一下上面的示意图,function是一个功能器,你给一个x,它生成一个y,它是y与x之间的关系及创建过程的统称。对y=f(x)来说,f是function,y是x的一个function值,但你硬要说y是x的function,只能说你吞音了(把字省掉了)。

但李善兰是个大家,函数这一名字又历经1百多年,即便不是最好的名字,也变成了最权威的名字,我们就用函数这一名字向他致敬!

Python中的函数

前面的示意图,也完美表示了python`中的函数定义。

在编程中,有一些常用的功能,我们把它写成函数,可以反复调用它。Python解释器中,已经内建了许多函数,我们可以直接调用,当然,我们也可以自己根据需要,创建函数。

函数怎么定义?怎么调用?

内建函数是使用c语言创建的,我们自己编写函数则用如下格式:

def func(arg1, arg1…argN):

function_block #函数体

def实际是一个赋值语句。函数创建时,先创建函数对象,然后将函数对象赋值给函数名func,就好象“func =函数对象”。Def赋值后,函数名就直接成了一个对象的引用

函数体一般会包含一个return语句,它可以在函数主体的任何地方出现,它表示函数调用的结束,并将一个值返回给调用者。return语句也可以省略,这时默认返回None。

而函数的调用,是在程序中通过函数名后增加()来调用的。

举个简单的例子,因为较短,可以在交互模式下定义和运行:

>>> deftimes(a,b):

return a*b

>>>times(2,3) #调用此函数,调用时把实参2,3传递给形参a,b

6

当然,我们也可以把这个对象赋给其它名称,由这些名称来调用它。

>>> x =times('python',2)

'pythonpython'

这次调用,传递的参数是字符串’python’,多少有点出乎初学者的意料。

从这里看,这个函数的具体作用取决于传递给它的参数,这正是Python的核心概念—多态

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190129G0V21T00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券