大家好,基于Python的数据科学实践课程又到来了,大家尽情学习吧。本期内容主要由程茜与政委联合推出。
函数
1
函数的基本使用
函数还记得吗?中学的时候学过Y=f(X),给定一个X,就有唯一的Y可以求出来。比如:y=4x+1,x=2,y=9;x=1,y=5。在编程语言里,函数就不是一个表达式了,它是能实现特定功能的可重用的语句组,通过函数名来表示和调用。
Python里函数的定义
def 函数名():
函数体
return
函数名是Python里任何有效的标识符,也就是要符合其命名规则;参数列表是调用该函数时传递给它的值,多个参数用逗号隔开。return产生的是函数返回值,其中多条返回语句是可被接受的。如果Python达到函数的尾部时仍然没有遇到return语句,就会自动返回None。
例如:在火锅数据集中sqrt是什么函数,针对每家火锅的团购价和市场价,可以编写一个能够实现参与团购能省多少钱的函数。
例1
<code class="<a href='https://www.zhaoxmw.com/59220.html' title='python' target='_blank' rel="noopener">python</a> language-python hljs" style="margin-right: 2px;margin-left: 2px;padding: 0.5em;box-sizing: border-box;font-size: 14px;color: rgb(169, 183, 198);line-height: 18px;border-radius: 0px;background: rgb(40, 43, 46);display: block;overflow-x: auto;letter-spacing: 0px;font-family: Consolas, Inconsolata, Courier, monospace;overflow-wrap: normal !important;word-break: normal !important;overflow-y: auto !important;"><span class="hljs-function" style="font-size: inherit;line-height: inherit"><span class="hljs-keyword" style="font-size: inherit;line-height: inherit">def</span> <span class="hljs-title" style="font-size: inherit;line-height: inherit">save_money</span><span class="hljs-params" style="font-size: inherit;line-height: inherit">(price, discount_price)</span>:</span><br style="font-size: inherit;color: inherit;line-height: inherit" /> balance = price - discount_price<br style="font-size: inherit;color: inherit;line-height: inherit" /> <span class="hljs-keyword" style="font-size: inherit;line-height: inherit">return</span> balance<br style="font-size: inherit;color: inherit;line-height: inherit" /></code>
这里save_money是函数名,然后有两个形式参数,price和discount_price。函数体部分执行的是 balance = price -discount_price,最后函数返回的是 balance 的值。这样就定义了一个能实现计算省钱功能的函数。
2
函数的调用
定义后的函数不能直接运行,需要经过“调用”才能得到运行。基本方法:
函数名(实际赋值参数列表)
例2
结果如图所示:
调用参数是“市场价”与“团购价”的save_money函数。当函数调用发生时,才开始执行函数的内容。“市场价”赋值给price,“团购价”赋值给discount_price,然后计算差额返回给balance。很容易能够发现六婆串串香火锅团购的话可以省15元。
3
函数的参数传递
函数调用时,默认采用按照位置顺序的方式传递给函数,就像刚才计算差额的save_money函数一样,按照顺序传递。当然,Python中还可以按照参数名称传递,例如:
例3
在这里面,作为客户的我,想知道商家让利多少元?那就是用“团购价”减去“市场价”,这时,指定第一个参数discount_price是“团购价”,第二个参数price是“市场价”,于是就实现了参数名称传递。
4
匿名函数
匿名,指的是不署名或不署真实姓名。Python中就有这样低调而神秘的函数,也称为lambda表达式。通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。
比如,对于一个lambda表达式:lambda x,y: x-y。关键字lambda表示匿名函数,冒号前面的x,y表示函数参数,冒号后面则是函数体。它最终实现功能是求x-y的值。还用之前的计算每家火锅市场价与团购价的差额的。
例4
<p style="margin-right: 2px;margin-bottom: 20px;margin-left: 2px;padding: 0.5em;font-size: 14px;line-height: 18px;border-radius: 0px;letter-spacing: 0px;font-family: Consolas, Inconsolata, Courier, monospace">func=<span class="hljs-keyword" style="font-size: inherit;line-height: inherit">lambda</span> x,y: x-y<br style="font-size: inherit;color: inherit;line-height: inherit" />func(coupon[<span class="hljs-string" style="font-size: inherit;line-height: inherit">'市场价'</span>],coupon[<span class="hljs-string" style="font-size: inherit;line-height: inherit">'团购价'</span>]<br style="font-size: inherit;color: inherit;line-height: inherit" /></p>
这里用匿名函数代替了save_money函数的功能,x,y是形式参数,x-y是函数体内容。
模块
当一个函数简单的时候,写进一个文件就可以了。但是当越来越复杂时,将所有代码写进一个程序文件中就会出现文件过长或过大,不利于管理与维护。如果可以进行分类,放入不同的文件存放sqrt是什么函数,就会显得非常整洁。那么不同类别的存放文件就是不同的模块。Python中,模块实际就是包含函数和其他语句的Python脚本文件,后缀为.py。模块可以被别的程序引入,以使用该模块中的函数等功能。
在Python中可以使用以下3种方法导入模块或者模块中的函数。
这里面import是将整个模块导入,而from是将模块中的某个函数导入。使用import与from还有一个不同,就是使用import导出模块,模块中的函数使用时必须是模块名"."的形式。以pandas模块为例如下:
例4
例5
值得注意的是,模块可以简单看做是大量的函数构成的为了完成某一功能集合体。而本书作为数据科学实践的入门书籍,目的就是在阐述在数据科学实践的各个环节使用的Python数据科学实践模块。
好了今天就讲到这里。
作业:请大家导入Pandas模块,利用函数导入shops_nm.xlsx数据(点击“阅读原文下载”),查看你用的函数的帮助文档,理解每个参数的含义,例如encoding。
▼
往期精彩回顾
▼
———END———
限 时 特 惠:本站每日持续更新海量各大内部创业教程,一年会员只需128元,全站资源免费下载点击查看详情
站 长 微 信:jiumai99