python的coupon_Python数据科学实践 | 函数与模块

原标题:Python数据科学实践 | 函数与模块

大家好,基于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。

例如:在火锅数据集中,针对每家火锅的团购价和市场价,可以编写一个能够实现参与团购能省多少钱的函数。

例1

defsave_money(price, discount_price):

balance = price - discount_price

returnbalance

这里save_money是函数名,然后有两个形式参数,price和discount_price。函数体部分执行的是 balance = price -discount_price,最后函数返回的是 balance 的值。这样就定义了一个能实现计算省钱功能的函数。

2

函数的调用

定义后的函数不能直接运行,需要经过“调用”才能得到运行。基本方法:

函数名(实际赋值参数列表)

例2

coupon[ "差额"] = save_money(price=coupon[ '市场价'], discount_price=coupon[ '团购价'])

coupon.iloc[ 4,]

结果如图所示:

调用参数是“市场价”与“团购价”的save_money函数。当函数调用发生时,才开始执行函数的内容。“市场价”赋值给price,“团购价”赋值给discount_price,然后计算差额返回给balance。很容易能够发现六婆串串香火锅团购的话可以省15元。

3

函数的参数传递

函数调用时,默认采用按照位置顺序的方式传递给函数,就像刚才计算差额的save_money函数一样,按照顺序传递。当然,Python中还可以按照参数名称传递,例如:

例3

coupon[ "差额"]=save_money(discount_price=coupon[ '市场价'],price=coupon[ '团购价'])

coupon.iloc[ 4,]

在这里面,作为客户的我,想知道商家让利多少元?那就是用“团购价”减去“市场价”,这时,指定第一个参数discount_price是“团购价”,第二个参数price是“市场价”,于是就实现了参数名称传递。

4

匿名函数

匿名,指的是不署名或不署真实姓名。Python中就有这样低调而神秘的函数,也称为lambda表达式。通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。

比如,对于一个lambda表达式:lambda x,y: x-y。关键字lambda表示匿名函数,冒号前面的x,y表示函数参数,冒号后面则是函数体。它最终实现功能是求x-y的值。还用之前的计算每家火锅市场价与团购价的差额的。

例4

func=lambdax,y: x-y

func(coupon['市场价'],coupon['团购价']

这里用匿名函数代替了save_money函数的功能,x,y是形式参数,x-y是函数体内容。

模块

当一个函数简单的时候,写进一个文件就可以了。但是当越来越复杂时,将所有代码写进一个程序文件中就会出现文件过长或过大,不利于管理与维护。如果可以进行分类,放入不同的文件存放,就会显得非常整洁。那么不同类别的存放文件就是不同的模块。Python中,模块实际就是包含函数和其他语句的Python脚本文件,后缀为.py。模块可以被别的程序引入,以使用该模块中的函数等功能。

在Python中可以使用以下3种方法导入模块或者模块中的函数。

import 模块名

import 模块名as 新名字

from 模块名 import 函数名

这里面import是将整个模块导入,而from是将模块中的某个函数导入。使用import与from还有一个不同,就是使用import导出模块,模块中的函数使用时必须是模块名"."的形式。以pandas模块为例如下:

例4

importpandas #导入pandas模块

importpandas aspd #导入pandas模块,记为pd

frompandas importDataFrame #导入pandas模块中的DataFrame

例5

importmath #导入math模块

frommath importsqrt #导入math模块的sqrt函数

importmath asshuxue #导入math模块,记为shuxue,请原谅拼音不好的同学

print(math.sqrt( 3)) #返回值 1.7320508075688772

print(sqrt( 3)) #返回值 1.7320508075688772

print(shuxue.sqrt( 3)) #返回值 1.7320508075688772

值得注意的是,模块可以简单看做是大量的函数构成的为了完成某一功能集合体。而本书作为数据科学实践的入门书籍,目的就是在阐述在数据科学实践的各个环节使用的Python数据科学实践模块。

好了今天就讲到这里。

作业:请大家导入Pandas模块,利用函数导入shops_nm.xlsx数据(点击“阅读原文下载”),查看你用的函数的帮助文档,理解每个参数的含义,例如encoding。

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值