查看原文
其他

《python定义函数知识大讲堂<1>》

王悦 Stata and Python数据分析 2022-03-15

暑期Stata培训班招生啦!!!接力线上的网课培训,我们在今夏又开始新一轮的线下培训啦!8月4日至12日,爬虫俱乐部期待与您的相遇!培训具体内容详见推文《暑期Stata编程技术定制培训班》

有问题,不要怕!点击推文底部“阅读原文”下载爬虫俱乐部用户问题登记表并按要求填写后发送至邮箱statatraining@163.com,我们会及时为您解答哟~

喜大普奔~爬虫俱乐部的github主站正式上线了!我们的网站地址是:https://stata-club.github.io,粉丝们可以通过该网站访问过去的推文哟~

好消息:爬虫俱乐部隆重推出数据定制及处理业务啦,您有任何网页数据获取及处理方面的难题,请发邮件至我们邮箱statatraining@163.com,届时会有俱乐部资深高级会员为您排忧解难!

爬虫俱乐部每周有关python各种应用的推文推出已经有三个月了,不知道各位在阅读推文的过程中有没有学到新知识或者温故知新呢~,今天笔者将给大家介绍的是如何在python中定义函数。

我们经常会遇到这样的问题,比如需要在程序中多次执行同一项任务,当然我们可以选择重复编写完成该任务的代码,但是如果掌握了如何定义函数,那么就无需进行大量重复的代码编写,只需调用执行该任务的函数。函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。Python其实已经提供了许多内建函数,比如print()。但我们也可以自己创建函数,这被叫做用户自定义函数。

小试牛刀

首先,我们来学习在python中如何定义函数,通用语法如下:

def function_name(parameters):    expressions

在python中使用关键字def开始函数定义,紧接着function_name是函数名,扩号内部parameters为函数的参数,expressions内部为函数的具体功能实现代码,如果想要函数有返回值,在expressions中的逻辑代码中用return返回

接下来,我们尝试着定义一个具体的简单的函数,想要实现的功能是:当你输入自己的名字时函数接受你传递给它的名字,并向你发出问候,程序如下:

def greet(username):    print("Hello~"+username.title()+"!") greet("ChrisWu")

在这里关键字def向python指出了函数名为greet,这个函数要求你调用它时给参数username指定一个值,执行得到的结果如图:

return语句

函数并非总是直接显示输出,相反它可以处理一些数据,并返回一个数值,一个字符串,一个布尔值或者一个列表。函数返回的值被称为返回值。return语句是可选的,它可以在函数体内任何地方出现,表示函数调用执行到此结束,并将值返回到调用函数的代码行;如果没有return语句,会自动返回None,如果有return语句,但是return后面没有接表达式或者值的话也是返回None。下面来看几个例子:

def sum(a,b):    print(a+b) result = sum(2,3) result is None

结果如图:

可以看到,定义函数sum时没有使用return语句,在调用该函数的时候,返回的值是None。

def sum(a,b):    print(a+b)    
   return
result = sum(2,3) result is None

结果如图:

可以看到,此处定义sum函数时,虽然使用了return语句,但是后面没有接任何表达式,返回的值也是None。

def sum(a,b):    return (a+b) result = sum(2,3) result is None

结果如图:

可以看到,这一次在定义sum函数时,使用了return语句并在后接了表达式,返回的值不再是None。

斐波那契数列

       斐波那契数列指的是这样一个数列:0, 1, 1, 2, 3, 5, 8, 13,……该数列的规律是:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。下面我们来学习如何在Python中实现斐波那契数列。

首先我们用一个函数来生成斐波那契数列中第n个数字,按照该数列的规律,从第三项开始,f(n) = f(n-1) + f(n-2),在函数的定义中我们也用到了递归的思路,程序如下:

def Fibonacci(n):    if n<= 0 :        
       return 0    elif n == 1:      
        return 1    else:        
        return Fibonacci(n-1) + Fibonacci(n-2)    Fibonacci(5)

结果如图:

可以看到,运行结果显示斐波那契数列第五项为5。

上面的程序只是显示数列中某一项对应的数值,如果想要展示整个数列,那我们需要再编写一个函数,程序如下:

def Fibonacci_list(n):    result_list = []  #先定义一个空的列表    for i in range(0, n + 1):        result_list.append(Fibonacci(i))  #在空列表后面依次接上数列第0项到第n项的数值    return result_list Fibonacci_list(5)

结果如图:

注:此推文中的图片及封面(除操作部分的)均来源于网络!如有雷同,纯属巧合!

以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。另外,我们开通了苹果手机打赏通道,只要扫描下方的二维码,就可以打赏啦!

应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~

                                   

             文字编辑:何雪泽

  技术总编:刘贝贝


往期推文推荐:

1.爬虫俱乐部新版块--和我们一起学习Python

2.hello,MySQL--Stata连接MySQL数据库

3.hello,MySQL--odbcload读取MySQL数据

4.再爬俱乐部网站,推文目录大放送!

5.用Stata生成二维码—我的心思你来扫

6.Mata中的数据导出至Excel

7.谈谈图形中坐标设置的技巧

8.如何输出某个关键词在字符串中的所有位置?

9.想看什么书?Stata君帮你寻!——爬取中南财大图书馆书目信息

10.爬虫俱乐部隆重推出网上直播课程第一季




关于我们

微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。

此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。

投稿邮箱:statatraining@163.com

投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存