我与python约个会:13编程进阶~函数
2017-05-16 17:53
423 查看
写在前面:
经过前面几部分的学习,我们已经可以开发常规的一些简单功能处理程序了。
但是对于我们的项目开发还是远远不够的。本节内容开始进入基础进阶部分的学习
我们通常在进行一些功能处理的过程中,需要执行一行或者多行代码来完成整个业务流程的处理,如:
上面这段程序相信大家都能看懂,就是求取用户输入一个指定半径的圆的面积
如果我们在不确定的某个时刻,又需要求取另一个圆的面积,应该怎么做呢?
思考中....没事,我重新写一下这段代码!
这样,合适吗?!
合适,但是存在问题,什么问题呢…就是代码重复,工作重复,如果每天这样大量重复的工作出现,程序就不再是编程,而是搬砖了。
此时,我们python和其他编程语言一样,可以将这段程序封装成函数,通过一个定义的函数封装好这些代码,在某些需要的时候,通过函数的名称直接调用即可。
函数的定义非常简单,python中通过def关键字来定义函数
代码块,就是多行代码作为一个整体,在python中,通过缩进的方式来确定不同的代码块,临近的相同缩进的代码为一个整体代码块。
一个python程序中,所有出现缩进的空格数量必须一致。
函数中的封装的代码块必须是缩进一定部分的多行代码。
按照上面的例子,我们定义一个求取圆的面积的函数
如上所示,一个计算圆的面积的函数就被定义好了,函数的名称为getCircleArea。
切记,定义函数不会让函数中的代码执行。
定义好的函数,我们需要通过函数的名称来调用函数,函数中的代码才会执行。
调用函数通过
这样,我们就可以在需要的时候,直接通过定义好的函数名称getCircleArea(radius)来进行函数功能的重复执行了。
在函数中,我们可以看到也进行了变量的使用,那函数中的变量和函数外的变量到底有什么区别呢?
声明在函数外面的变量,可以在文档的任意地方使用这个变量,我们称为全局变量
声明在函数内部的变量,只能在函数内部使用,函数执行结束这个变量就会被回收,我们称为局部变量
全局变量和局部变量:
几乎所有的编程语言中都有全局变量和局部变量的区分,同时我们在开发过程中,也需要尽量避免频繁使用全局变量
原因之一全局变量一经使用就常驻内存,如果全局变量中数据过于庞大就会导致内存溢出程序崩溃的情况
原因之二是全局变量在使用的过程中容易造成变量的全局污染,因为在项目开发过程中通常是多个人协同开发多个Python文件然后整合到一起,此时就有可能会因为全局变量重名造成变量的值覆盖的情况出现。
下一节,我们针对函数的参数进行单独的讲解
经过前面几部分的学习,我们已经可以开发常规的一些简单功能处理程序了。
但是对于我们的项目开发还是远远不够的。本节内容开始进入基础进阶部分的学习
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文件然后整合到一起,此时就有可能会因为全局变量重名造成变量的值覆盖的情况出现。
下一节,我们针对函数的参数进行单独的讲解
相关文章推荐
- 我与python约个会:15编程进阶~函数的返回值
- Python编程-函数进阶二
- 我与python约个会:14编程进阶~函数的参数
- Python进阶学习笔记——函数式编程之高阶函数
- [Python入门及进阶笔记]Python-基础-函数小结
- Python进阶04 函数的参数对应
- Python进阶07 函数对象
- Python编程第7讲—函数
- Python进阶07 函数对象
- python进阶三_函数
- C++与Python的混合编程-调用有参函数以及C++数据类型与Python数据类型间的转换
- Python进阶04 函数的参数对应
- Python进阶07 函数对象
- 转自:Python函数式编程指南(二):函数
- [PYTHON] 核心编程笔记(11.Python函数和函数式编程)
- Python进阶07 函数对象
- Python进阶04 函数的参数对应
- [Python入门及进阶笔记]Python-基础-函数小结
- Python进阶07 函数对象
- 八、Python的函数编程(之二)