python 数据类型函数-python函数中嵌套函数
五、函数
认识函数
经过第一章的阅读与训练,其实你早已掌握了函数的用法
通过观察规律其实不难发现,Python中所谓的使用函数就是把你要处理的对象放到一个名字后面的括号里就可以了。
以最新的3.50版本为例,一共存在68个这样的函数,它们被统称为内建函数(Build-in Functions)。内建的意思是这些函数在3.50版本安装完成后你就可以使用它们,是“自带”的而已。
现在你并不必急着把这些函数是怎么用的都搞明白,其中一些内建函数很实用但是另外一些就不常用,比如涉及字符编码的函数ascii(),bin(),chr()等等,这些都是相对底层的编程设计中才会使用到的函数,在你深入到一定程度的时候才会派的上用场。
附上Python'官网中各个函数介绍的链接:https:/docs.Python.org/3/library/functions.html,有兴趣深入了解的话可以看一眼。
创建函数
我们需要学会使用已有的函数,更需要学会创建新的函数。自带的函数数量是有限的,想要让Pytho帮助我们做更多的事情,就要自己设计符合使用需求的函数。创建函数也很简单
先试着在命令行/终端中进入Python环境,输入这样的公式:
咱们要做的就是定义两个函数将上述公式放入函数中,然后就可以在别的地方直接调用函数即可了。这里先介绍几个常见的词:
看一下函数定义的表达式吧
现在用函数实现上述第一个公式,
将函数命名为fahrenheit Converter(),我们把C设为参数,最后返回fahrenheit的数值
输入完以上代码后,函数定义完成,那么我们开始使用它。我们把使用函数这种行为叫做"调用"(call)
好,到了这里函数的定义和基本用法你就已经了解,在很长一段时间内你知道上面所讲的这些内容就基本够用了,但为了让你在深入使用函数的时候不产生困惑和挣扎,接下来我们试着解决一个更复杂的问题。
该函数表示函数没有使用return返回具体的值,函数内部会打印值
运行结果如下图
因为函数并没有返回具体的值,此时返回None,所以C2F是None
传递参数与参数类型
对于在一开始就设定了必要参数的函数来说,我们打出函数的名称并向括号中传递参数实现对函数的调用(call),只要把参数放进函数的括号中即可,就像是这样:
事实上,传递参数的方式有两种
定义函数
调用函数
不难看出,填入的参数1,2,3分别对应着参数base_up,base_down和neight。这种传入参数的方式被称作为位置参数。
第二种传参方式
更直观地,在调用函数的时候,我们将每个参数名称后面赋予一个我们想要传入的值。这种以名称作为一一对应的参数传入方式被称作是关键词参数。
避免混乱的最好方法就是先制造混乱,我们试着解决一个更复杂的问题,按照下面几种方式调用函数并打印结果:
定义函数时设置为参数设置默认参数,默认参数是可选的,调用时传或不传该参数均可正常运行
给一个参数设定默认值非常简单,我们只需要在定义参数的时候给参数赋值即可。
调用函数时也可以修改默认参数的值
设计自己的函数
我们将上面各种所有知识进行整合,来设计一个简易的敏感词过滤器,不过在这之前先来认识一个新的函数-open。
这个函数使用起来很简单,只需要传入两个参数就可以正常运转了:文件的完整路径和名称python 数据类型函数,打开的方式。
先在桌面上创建一个名为text.txt的文件。现在我们使用open函数打开它:
我们再认识一个新的方法—write.
在第一章我们已经提到过如何使用方法(如果你现在困惑函数和方法到底是什么关系的话,为了顺利地往后进行,我可以告诉你方法就是函数的一种,只不过在不同的位置而已,使用原理和函数非常相似),在这里我们就照抄第三章的replace用法来学着使用write方法:
写完后看看效果
掌握了open与write的基本用法之后,我们就可以开始着手设计函数了,需求是这样的:传入参数name与msg就可以控制在桌面写入的文件名称和内容的函数text_create,并且如果当桌面上没有这个可以写入的文件时python 数据类型函数,那么就要创建一个之后再写入。现在我们开搞吧!
注:第四行:打开文件'w参数代表作为写入模式,意思是:如果没有就在该路径创建一个有该名称文本,有则追加覆盖文本内容;
第六行:关闭文本
继续完成过滤器的另一个函数
现在我们试着解决一个更复杂的问题,把两个函数进行合并:创建一个名为text_censored_create的函数,功能是在桌面上创建一个文本可以在其中输入文字,但是如果信息中含有敏感词的话将会被默认过滤后写入文件。其中文本的文件名参数为name,信息参数为msg,你可以先试着自己写一下,写完了再对照看下:
运算符介绍