ad

打开《Python 可视化数据分析》_学会挖掘大数据的价值_3.3.1 函数的定义

网友投稿 126 2023-11-13

【摘要】 本书摘自《Python网络爬虫 从入门到精通》一书中第3章,第3节,李迎著。

3.3.1 函数的定义

函数定义用关键字 def 引起,加函数名构成,具体格式如下:

打开《Python 可视化数据分析》_学会挖掘大数据的价值_3.3.1 函数的定义

def 函数名 (参数1,参数2,...):

函数体

Return 返回值

在上面这个模板中可以体现 Python函数的五大要素:def、函数名、函数体、参

数、返回值,以及两个英文版符号,分别是括号和冒号(:),括号内为参数。 1 def test1(n1,n2):

2 print(n1)

3 print(n2)

4 n=n1+n2

5 m=nl*n2

6 p=nl-n2

7 e=n1**n2

sum i,wl=test4(2,10)

10 print(suml,multi,plus,powl)

对上面这10行代码中进行概念解释,Python 中的函数是需要先定义后调用的,

上面这段代码就是定义一个函数,这个函数的名字叫 test1, 它有两个形参n1,n2,

函数的目的是对已知两个数求四种运算。函数定义中的返回值就是函数的一个功能 块,该函数功能到底执行成功与否,需要通过返回值来告知调用者。在上面代码中, 第1行由 def引起函数,空一个格后面是函数名称,函数名是由字母、数字或下画 线组成的字符串,不能用数字开头,函数名后面括号中是此函数所用的两个参数

n1,n2, 起名字叫形式参数(简称形参)。第2、3行是对两个已知参数进行打印,第

4~7行是用参数 nl,n2 求加、乘、减、乘方运算并把结果赋给 n\m\p\e 四个变量,第 8 行 return 后是返回值,返回值代表这四种运算的四个变量,第9行是调用已经设 计的 test1 函数,同时有四个变量 suml,multi,plus,pow1 接收此函数返回值,括号中的 2和10是传给函数 test1 的两个实际参数,以后都简称实参,将要覆盖函数 test1 的

两个形式参数值n1 和 n2, 第10行是打印接收返回值的四个变量。

运行结果为:

2

10

2012 -8 1024

其中第1、2行是输出调用函数 test1 中两行代码是输出两个参数n1,n2, 这里输 出的是调用中实参2和10,第3行输出的是调用函数test1 中接受的 return 返回值, 只有通过 print()函数才能呈现出来。下次,如果还需对两个数求四种运算,就可以

直接调用,并传入实参即可。

a,b,c,d=test4(3,8)

print(a,b,c,d)

3.3.2 函数的参数及类型

定义函数时,参数是一定需要考虑的,Python 的函数定义非常简单,但灵活度 却非常大。Python 中,参数也是非常灵活的。掌握参数就能领悟函数的真谛,在下面

这个示例中我们继续学习参数内容。

1 deftest2(x,y=55):

2 if x>y:

3 return(x)

4 else:

5 return(y)

6 a=test2(15)

7 print(a)

这段代码第1~5行很好地设计了一个模块 test2 函数,在这个函数中形参x,y, 其中给形参y 赋值55,这时y 就是默认值参数。Python 函数支持默认参数,也就是 可以给函数的参数指定默认值。当该参数没有传入相应的值时,该参数就使用默认 值。在第6行调用此函数时,括号中,只传入一个15的值,是默认的传给没有默认 值的形参 x 的。a 接收符合条件的函数返回值,第7行打印返回值。最终运行结果

如下:

55

这些表明在调用者需要这个test2 函数时,传入实参15给x,y 选取了默认值55, 运行函数后返回值为 y,y 的值为默认值55,a 接收了55,并打印出。有的读者会有 疑问,如果我在调用过程中 x、y 都想传递新的实参可否?答案是可以的,新的实参 会自然替代默认值。在下面这两行调用语句中,就是重新调用了 test2, 同时赋予了两个新的实参(30,14),打印接收返回值的 b。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:学习《Python网络爬虫 从入门到精通》_掌握爬虫的精髓_4.3 抓取动态内容
下一篇:学习《Python网络爬虫 从入门到精通》_10.1.2 理解返回的 JSON 格式数据的意义
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×