前言
再开始讲函数之前,我们先来看这一张图:
通过观察规律其实不难发现,Python 中所谓的使用函数就是把你要处理的对象放到一个名字后面的括号里就可以了。简单的来说,函数就是这么使用,可以往里面塞东西就得到处理结果。这样的函数在Python中还有这些:
以最新的3.50版本为例,-共存在68个这样的函数,它们被统称为内建函数(Built-in Functions)。之所以被称之为内建函数,并不是因为还有“外建函数”这个概念,内建的意思是这些函数在3.50版本安装完成后你就可以使用它们,是“自带”的而
已。千万不要为这些术语搞晕了头,随着往后学习,我们还能看见更多这样的术语,其实都只是很简单的概念,毕竟在一个专业领域内为了表达准确和高效往往会使用专业术语。
现在你并不必急着把这些函数是怎么用的都搞明白,其中一些内建函数很实用,但是另外一些就不常用,比如涉及字符编码的函数asci(), bin(), chr()等等, 这些都是相对底层的编程设计中才会使用到的函数,在你深入到一定程度的时候才会派的上用场。
附.上Python官 网中各个函数介绍的链接: https:/ /docs. Python.org/3/ibrary/functions.html,有兴趣深入了解的话可以看一眼。
开始创建函数
我们需要学会使用已有的函数,更需要学 会创建新的函数。自带的函数数量是有限的,想要让Python 帮助我们做更多的事情,就要自己设计符合使用需求的函数。
创建函数也很简单,其实我们在多年前的初中课堂上早已掌握了其原理。
先试着在命令行/终端中进入Python环境,输入这样的公式:
看着有点眼熟吧?第-个是数学的梯形计算公式,而第二个是物理的摄氏度与华氏度的转换公式。
函数是编程中最基本的魔法,但同时一切的复杂又都被隐含其中。它的原理和我们学习的数学公式相似,但是并不完全-样,等到后面一点你就知道我为什么这么说了。这里面先介绍几个常见的词:
- def
(即defne,定义)的含义是创建函数,也就是定义一个函数。 - arg
(即argument,参数)有时你还能见到这种写法: parameter, 二者都是参数的意思但是稍有不同,这里不展开说了。 - returm
即返回结果。
好,现在我们读一-遍咒语: Define a function named ‘function’ which has two arguments : arg1 and arg2, returns the result-- ‘Something’ 是不是很易读很顺畅?代码的表达比英文句子更简洁一点:
学习更多知识或解答疑问、源码、教程请点击
需要注意的是:
-
def和return是关键字(keyword) ,Python就是靠识别这些特定的关键字来明白用户的意图,实现更为复杂的编程。像这样的关键字还有一些,在后面的章节中我们会细致讲解;
-
在闭合括号后面的冒号必不可少,而且非常值得注意的是你要使用英文输入法进行输入,否则就是错误的语法,如果你在IDE中输入中文的冒号和括号,会有这样的错误提示:
-
如果在IDE中冒号后面回车(换行)你会自动地得到一个缩进。函数缩进后面的语句被称作是语句块(block),缩进是为了表明语句和逻辑的从属关系,是Python最显著的特征之一。很多初学者会忽视缩进问题,导致代码无法成功运行,在这里需要特别注意。
现在我们看一下之前提到的摄氏度转化公式,按照上面定义函数的方法来实现一遍。我们把摄氏度转化定义为函数fahrenheit_ Converter(), 那么将输入进去的必然是摄氏度(Celsius) 的数值,我们把C设为参数,最后返回的是华氏度(fahrenheit)的数值,我们用下面的函数来表达,输入代码:
注:计算的结果类型是int,不能与字符串" oF”相合并,所以需要先用str)函数进行转换
输入完以上代码后,函数定义完成,那么我们开始使用它。我们把使用函数这种行为叫做“调用”(all) ,你可以简单地理解成你请求Python 给你帮忙去做一件事情,就像是我们之前学习到的函数len()- 样:“ 请帮我测量这个(对象)的长度,并将结果打印出来。“
就像我们使用len()函数一样,下面这段代码意味着一。请使用摄 氏度转换器将35摄氏度转换成华氏度,将结果储存在名为C2F的变量并打印来。”这样我们就完成了函数的调用同时打印了结果。
对应的结果应该是95.0°F,你可以找一个摄氏度转换器计算一下,下面是我使用Mac自带得Spotlight的计算结果
好,到了这里函数的定义和基本用法你就已经了解,在很长一段时间内你知道上面所讲的这些内容就基本够用了,但为了让你在深入使用函数的时候不产生困惑和挣扎,接下来我们试着解决-个更复杂的问题。
我们把刚才的函数按照如下进行修改: .
怎么样?看上去很相似吧?没错,我们仅仅就是把最后-行的 return 换成了 print 函数,一个很小的改动,而且似乎IDE也并没有对语法进行报错预警,那么我们来试一下调用函数会是什么情况吧:
运行起来的结果是这样的:
为什么会这样?
其实,得到这样的结果是因为print 是一个函数,并非关键字(如果你的print坏是函数那说明你的版本还停留在2.x系列,现在就赶紧安装3.0以上的版本! )。
如果你足够细心的话可以发现,在我的IDE中,虽说print与return它们都是蓝色,但实际是有区分的:一个是正常体,一个是斜体。
return作为关键字在函数中起到了返回值的
作用,而print 顾名思义, 只是在函数中展示给我们打印的结果,是为人类设计的函数。因此上面的95.0°F实际上是调用函数后产生的数值,而下面的None正是此时变量C2F中所被返回到的数值一什么 都没有,就因为没有关键字return 。
这就好比你对着-个人喊了一声他的名字(all) ,他只是“哎”地回应你-声,这是因为你并没有告诉他该做什么(return) 。没有return 也没关系, 不代表没有用,在Python 中return 是可选的(optional),这意味着你可以不用写retum 也可以顺利地定义一个函数并使用,只不过返回值是’None’罢了。在后面我们还能见到不同使用方式的函数,这里只需要记住函数的基本设定即可。
在前面我们提到过,定义一个函数使用def(defne) ,同时我们还能在各种教材不同版本的翻译中看到声明(declare) 这个词,我们不难推测,从表达的目的.上来说他们是一样的,而对于有其他语言基础的人来说这两个词意味着两种不同的行为。
其实没关系,在Python中defnition和declaration是一体的,在这里说明仅仅是为了解答有此困惑的人,深究则无意。
尾语
好了,我的这篇文章写到这里就结束啦!
有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง
喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!