函数、模块和库

Python号称万能胶水语言,它的功能非常强大,啥都可以写,覆盖的领域非常广,原因在于Python有非常丰富的函数、模块、库。

我们可以拿Windows操作系统来类比,windows功能也很强大,它强大在哪里?一是它自带了一些基础的软件,比如浏览器,它相当于Python的一个库,而浏览器有打开网页、新建标签页等等功能,这些相当于是Python的模块,而每个模块都是由多个函数写的;二是有很多第三方为它开发了更强大的软件,比如windows还有其他浏览器,以及还有photoshop等这些强大的第三方软件。Python也有非常强大的库生态系统。

技术文档的重要性

学习技术一定要求本溯源,多查阅技术文档。学任何一门编程语言,也一定不要脱离技术文档。如果不多翻阅技术文档,单纯依靠记忆,一不仅会增加你的记忆负担和学习成本,二你所掌握的内容可能并不足够系统与专业,难以深入学习下去。

技术文档:Python官方中文技术文档

尽管Python在中国很火,但是官方技术文档的中文版直到2019年3月底才推出,而绝大多数技术资料还只有英文版,所以要学好Python或编程,一定的英文文档阅读能力也是必备的。

脱离技术文档,只看书、视频、文章,是很多人学习技术的一大弊端,一定要注意实战+技术文档是学技术的核心。在后面的学习里,我们也会列出相关的技术文档供大家查阅。

内置函数与语法

关于Python的函数,其实前面我们就提到过一些,比如输出函数print(),输入函数input(),数字类型转换函数int(),float(),这些都是Python已经写好了的函数,我们称之为Python的内置函数。

技术文档Python 内置函数列表

通过技术文档让自己更专业

前面我们已经学过print()函数,在Python 内置函数列表里面并点击查阅对应的文档介绍。在技术文档里我们了解到print()函数的语法如下:

下面有相应的注解(翻译的实在太差),这里的objects是多个对象(字符串就是对象之一),sep=”表示分割对象的内容,end=’\n’是指输出结尾默认带换行。还有file和flush的知识这里先不介绍。

平时学习是很少看到下面这么复杂的案例的。如果没有文档,你不会了解还可以这么用。要使用一个定义好了的函数,了解技术文档里的语法是非常重要的。就跟我们查单词用法一样。

使用VS Code在lesson3文件夹里新建一个lesson3.py文件,把下面的代码输入到文件里之后执行。

内置的数值函数

使用VS Code在lesson3文件夹里新建一个lesson3-1.py文件,把下面的代码输入到文件里之后执行。

函数与调用函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。比如求绝对值的函数abs(x)功能就比较单一,我们要求很多个数的绝对值时,可以反复只使用这个函数就行。

要调用一个函数,首先我们要知道函数的名称,然后按照函数的语法把相应的数值传入既可。如果觉得难以理解也没有关系,实战过很多个案例的效果之后再来理解也不迟。

自定义函数

在Python中,定义一个函数要使用 def语句(以def这个关键词开头),依次写出函数名(函数名称只要不和关键词冲突,可以任意命名)、括号括号中的参数(参数可以是一个,也可以是任意多个)和冒号 :,然后,在缩进块(可以用tab键来缩进)中编写函数体,函数的返回值用 return语句返回(之前我们提到过的返回)。

上面一段话有点难以理解,那我们来自定义一个求绝对值的函数为例子,来促进大家理解。

使用VS Code在lesson3文件夹里新建一个python文件比如lesson3-2.py,把下面的代码输入到文件里之后执行。

大家可以发现,当我们定义了一次函数之后,就可以反复调用这个函数,是不是很方便?

学习 Python 与其他语言最大的区别就是,Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断,而是用缩进来写模块。缩进的空白数量是可变的但是数量必须一致。大家可以统一用四个空格或一个Tab键来缩进代码。

多个参数的函数

比如我们想定义一个求长方形面积的函数,要求长方形的面积会有两个参数,一个是长,一个是宽,这个时候我们定义函数的时候就要定义两个参数了,来看下面的案例具体是怎么定义两个参数的函数,以及是怎么调用两个参数的函数的.

使用VS Code在lesson3文件夹里新建一个python文件比如lesson3-3.py,把下面的代码输入到文件里之后执行。

我们在前面的内置数值函数里其实就已经接触过多个参数的函数,比如max()函数和min()函数,它们就是多个参数的函数。

内置模块(内置标准库)

使用模块最大的好处是大大提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。是不是有点类似函数,我们可以把模块简单的看成一个个函数的集合。

Python内置了很多有用的模块(内置标准库),关于Python内置模块有哪些以及对应的模块使用方法,我们可以查看技术文档。

技术文档Python内置模块列表

使用思维导图工具整理Python模块:我们可以看到内置模块种类非常多,有文件处理服务、数字数学模块、文件和目录访问模块、数据压缩和存档模块、通用操作系统服务模块、图形界面模块、多媒体服务模块等等,这些大家可以以后深入学习。大家可以下载一个思维导图软件(比如Xmind、百度脑图等)将这些模块整理一下。

math模块

我们以Python内置的math模块为例来说明模块的使用方法。math模块里面就有很多写好了的函数,比如:

  • math.ceil(x):求大于等于x的最小的整数值;
  • math.sin(x):求正弦;
  • math.cos(x):求余弦;
  • math.tan(x):求正切;
  • math.sqrt(x):求平方根;
  • math.pow(x, y),求x的y次方。

技术文档:math模块

要调用模块,首先我们需要引入import该模块,引入math模块,我们可以直接输入:

而调用math模块的函数,还是和上面调用函数的方式是一样的,比如我们调用math模块的math.sqrt(x)函数。使用VS Code在lesson3文件夹里新建一个python文件比如lesson3-4.py,把下面的代码输入到文件里之后执行。

函数的调用方式:比较内置函数、自定义函数和内置模块里的函数的调用方式有什么相同和不同之处。

注意:在调用模块的时候,python文件的名称和模块名称不能相同,否则会报错。比如你调用的模块是math,你的python文件名就不能叫math.py。

查看模块定义好了哪些函数

我们要看一个模块定义好了哪些函数,可以使用dir()函数,dir()函数会返回一个模块里定义的所有模块,变量和函数。我们除了可以使用技术文档来查看一个模块里有哪些函数以外,还可以使用dir()函数。

使用VS Code在lesson3文件夹里新建一个python文件比如lesson3-5.py,把下面的代码输入到文件里之后执行。

查看其它模块内置函数:参考上面的方法分别查看datetime、calendar、time、io、random、statistics、shutil、glob模块包含哪些变量与函数。这些模块在后面的章节里都会使用到。

from…import语句

Python 的 from …import语句让你从模块中导入一个指定的部分到当前命名空间中。这句话可能有点绕和难以理解,我们可以看一下math模块的案例。

在math模块中,除了定义一些有用的数学函数,还定义了一些数学常量,比如pi(也就是圆周率),e(也就是自然对数的底数)等。

使用from math import pi,就把math模块里的pi引入进来了,我们就可以直接打印pi的值。我们也可以把之前math模块的案例改成如下:

函数的调用方式:了解import 模块名和from 模块名 import 函数名这两种引入模块的方式调用函数的相同与不同之处。

pip管理库

前面说到库在Python里相当于是Windows的软件,Windows的第三方软件需要下载,Python的第三方库同样也是下载;下载Windows的软件我们可以到Windows的应用中心去下载,下载Python的第三方库,我们会用到pip。

pip 是一个现代的,通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。而与之对应的应用中心是PyPi-Python包管理中心

用pip来下载第三方的库方法非常简单,首先我们需要知道模块的名称,然后直接在命令行输入,输入pip install +模块\库名,比如pillow的库,在window输入:

Mac用户则需要输入:

大家可以去pypi网站去搜索一下pillow,就可以了解更多关于pillow的信息。

python到底有哪些吐血推荐的模块(库、包)呢?大家可以去Github上看一下经验人士整理的一个列表。

资料整理Python 资源推荐(中文)、Python资源推荐(英文、更推荐)

了解Python有哪些第三方库:去PyPi的网站PyPi-Python包管理中心查看一下,比如搜索一下pillow、django、tensorflow、flask、beautifulsoup等库,这些库都是业内知名库,以后大家一定会学到的。在Python 资源推荐(中文)、Python资源推荐(英文、更推荐)搜索这些库,看这些库大致是做什么用的。

查看安装了哪些第三方库

如果执行了前面的命令,那我们就已经安装好了pillow,怎么看我们安装了哪些第三方库呢?我们可以使用命令行工具执行以下命令:

Mac用户查看我们安装了哪些Python的第三方库

Windows用户可以输入以下命令:

可能很多小伙伴会问,你咋知道输入pip list就可以显示我们电脑安装了哪些第三方库,这个命令从何而来?其实类似于python,pip这些命令,大家都可以在命令行里输入python –help或pip –help来查看有哪些命令。

以pip为例,我们可以在命令行工具里,Mac用户输入pip3 –help,Windows 用户输入pip –help,查看返回的数据。pip除了有pip list,还有install(安装) ,uninstall(卸载),download(下载)等等命令。