您的位置:首页 > 编程语言 > Python开发

我与python约个会:13编程进阶~函数

2017-05-16 17:53 423 查看
写在前面:

经过前面几部分的学习,我们已经可以开发常规的一些简单功能处理程序了。

但是对于我们的项目开发还是远远不够的。本节内容开始进入基础进阶部分的学习


1. 什么是函数

我们通常在进行一些功能处理的过程中,需要执行一行或者多行代码来完成整个业务流程的处理,如:
# 计算指定半径的圆的面积
# 定义圆周率
pi = 3.1415926;
# 指定用户输入圆的半径,通过int()将输入的数据转换成整数
r = int(input("请输入圆的半径:"));
# 执行计算功能,求取圆的面积
area = pi * (r ** 2);
print("您要求的半径为" + r + "的圆的面积为:"  + str(area));


上面这段程序相信大家都能看懂,就是求取用户输入一个指定半径的圆的面积

如果我们在不确定的某个时刻,又需要求取另一个圆的面积,应该怎么做呢?

思考中....没事,我重新写一下这段代码!

这样,合适吗?!

合适,但是存在问题,什么问题呢…就是代码重复,工作重复,如果每天这样大量重复的工作出现,程序就不再是编程,而是搬砖了。

此时,我们python和其他编程语言一样,可以将这段程序封装成函数,通过一个定义的函数封装好这些代码,在某些需要的时候,通过函数的名称直接调用即可。


1.1. 函数的定义

函数的定义非常简单,python中通过def关键字来定义函数
def 函数名称(参数列表):
函数中封装的代码块
[return 返回值]


代码块,就是多行代码作为一个整体,在python中,通过缩进的方式来确定不同的代码块,临近的相同缩进的代码为一个整体代码块。

一个python程序中,所有出现缩进的空格数量必须一致。

函数中的封装的代码块必须是缩进一定部分的多行代码。

按照上面的例子,我们定义一个求取圆的面积的函数
# 定义一个函数,用于计算指定半径的圆的面积
def getCircleArea(radius):
pi = 3.1415926;
area = pi * (radius ** 2);
return area;


如上所示,一个计算圆的面积的函数就被定义好了,函数的名称为getCircleArea。

切记,定义函数不会让函数中的代码执行。


1.2. 函数的调用

定义好的函数,我们需要通过函数的名称来调用函数,函数中的代码才会执行。

调用函数通过
函数名称()
来调用函数,后面的圆括号中,可以根据定义函数的参数列表给函数传递对应的参数
r = int(input("请输入圆的半径:"));
a = getCircleArea(r);
print("圆的面积是:" + str(a));


这样,我们就可以在需要的时候,直接通过定义好的函数名称getCircleArea(radius)来进行函数功能的重复执行了。


1.3. 函数中的变量

在函数中,我们可以看到也进行了变量的使用,那函数中的变量和函数外的变量到底有什么区别呢?

声明在函数外面的变量,可以在文档的任意地方使用这个变量,我们称为全局变量

声明在函数内部的变量,只能在函数内部使用,函数执行结束这个变量就会被回收,我们称为局部变量

全局变量和局部变量:

几乎所有的编程语言中都有全局变量和局部变量的区分,同时我们在开发过程中,也需要尽量避免频繁使用全局变量

原因之一全局变量一经使用就常驻内存,如果全局变量中数据过于庞大就会导致内存溢出程序崩溃的情况

原因之二是全局变量在使用的过程中容易造成变量的全局污染,因为在项目开发过程中通常是多个人协同开发多个Python文件然后整合到一起,此时就有可能会因为全局变量重名造成变量的值覆盖的情况出现。

下一节,我们针对函数的参数进行单独的讲解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息