6. 函数
对任何编程语言来说,函数都是最重要的模块化,代码可重用化的手段。Python函数的定义方法如下:
def 函数名(参数1, 参数2, ...):
函数体
Python函数用return关键字返回,如果return后没有带返回值,或没有执行return函数就结束了,则返回None
6.1 位置参数和关键字参数
Python函数的参数分为位置参数和关键字参数。
位置参数比较好理解,就是常见的函数参数,调用时按顺序传入参数即可。
关键字参数一般放在位置参数之后,在定义函数时指定缺省值。调用时可不按关键字参数定义的顺序,用“参数名 = 调用值”的形式给参数赋值。
如果不给关键字参数赋值,则使用定义的缺省值。
对以上函数来说,以下三种调用方式都可以。
6.2 返回多个值
返回多个值,也是Python非常酷的一个功能。这主要归功于Python的元组,这里正是应用了元组的拆包功能。
6.3 匿名函数(lambda函数)
lambda函数又是Python非常酷的一个功能。前面讲到,Python函数可以作为另一个函数的参数,这时候采用匿名函数,经常可以大大简化代码。
例如,以下两种定义函数的方式,前者是传统的函数定义方式,后者就是一个lanmbda函数。
未来会在数据分析的学习中,应用到匿名函数。
7. 文件操作
用Python内置的open()打开文件,默认打开模式是“r”读模式,如果处理中文,需要带上encoding参数,open()函数返回一个文件句柄。
打开后可以像处理列表一样,逐行读取文件。
文件处理结束后,一定要关闭文件句柄,否则会造成内存泄露。
以上的文件操作,如果发生文件不存在的情况,程序就会出错中断。在实际编程中,经常使用以下的条件判断,当文件打开成功时才进行文件操作,否则就不执行。这样整个程序不会被中断。
Python还可以对磁盘文件进行删除、复制、移动等各种操作
Python对文件的操作还有很多功能和方法,这里不详细赘述,后面用到了再介绍。
8. 数据库操作
这里用SQLite为例,演示Python的数据库操作。Python自带了一个SQLite3模块,以及对应的API库sqlite3,无需另外安装。如果要访问MySQL或SQL server数据库,需要另外安装数据库软件。
数据库的操作经常是在网络环境下进行的,存在比较多的异常情况。因此,在数据库操作的编程实践中,一般都要采用前面降到的try-exception-finally结构,捕获异常,保证程序端一直处于正常运转中。因此,以上的程序代码可以修改为: