`
李灵晖-raylee
  • 浏览: 128515 次
博客专栏
Group-logo
从头认识java
浏览量:0
文章分类
社区版块
存档分类
最新评论

零基础学python-15.1 为什么需要编写函数

 
阅读更多

1.为什么需要函数?

1)最大化的代码重用和最小化的代码冗余

我们下面举一个简单例子:加法

>>> a=1
>>> b=1
>>> c=a+b
>>> c
2
>>> d=1
>>> f=1
>>> e=d+f
>>> e
2

从上面的代码我们看见,如果要做多次加法,那么需要写一大段的代码,但是如果我们把加法写成函数:

>>> def add(x,y):
	return x+y

>>> add(1,1)
2
>>> add(2,3)
5
>>> 

从上面的方法可以看见,我们写代码的数量明显减少

而且,封装方法更加有利于以后的维护

假如:在一个大型应用里面,我们成千上万次使用加法,然后我现在需求是,在加法前先打印相加的两个数量,如果不使用封装函数,那么我们就必须在大型应用里面成千上万的改动代码,这个成本非常的高昂,但是如果封装成函数,因为都是复用,所以我们只需要改一个地方就可以,我们可以对比下面两组代码:

>>> a=1
>>> b=1
>>> print(a)
1
>>> print(b)
1
>>> c=a+b
>>> c
2
>>> d=1
>>> f=1
>>> print(d)
1
>>> print(f)
1
>>> e=d+f
>>> e
2
>>> 

>>> def add(x,y):
	print('x:'+str(x))
	print('y:'+str(y))
	return x+y

>>> add(1,2)
x:1
y:2
3
>>> add(3,4)
x:3
y:4
7
>>> 

对于第一种方法,我们修改非常多的地方,对于第二种方法,我们只需要修改一处地方即可,成本大大降低,而且减少bug的出现


2)流程的分解

例如做一个馒头,他的步骤是:和面、调味、蒸煮等步骤,每一个步骤我们都可以定义为一个函数,然后做一个馒头所需要的函数就是1,2,3等等,每一个小步骤执行的正确率要高于整体操作。

>>> def huomian():
	print('和面')
	

>>> def tiaowei():
	print('调味')

	
>>> def zhengzhu():
	print('蒸煮')

	
>>> def makeABread():
	huomian()
	tiaowei()
	zhengzhu()

	
>>> makeABread()
和面
调味
蒸煮
>>> 

总结,这一章节注意说明了为什么需要编写函数,主要是因为提供效率还有分解步骤,使得程序更容易理解和执行


这一章节就说到这里,谢谢大家

------------------------------------------------------------------

点击跳转零基础学python-目录


版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    Python中文手册

    介绍 <br>简介 <br>Python的特色 <br> 概括 <br>为什么不使用Perl? <br>程序员的话 <br>2. 安装Python <br>Linux和BSD用户 <br>Windows®用户 <br>概括 <br>3. 最初的...

    Python实现的调用C语言函数功能简单实例

    本文实例讲述了Python实现的调用C语言函数功能。分享给大家供大家参考,具体如下: 实例参考python cookbook 中的15.1节中的例子P612页 先把 c文件编译成 so文件 gcc a.c -fpic -shared -o lib.so 通过上面编译...

    Python编程入门经典

    1.3.2 为什么需要引号 6 1.3.3 为什么有3种类型的引号 7 1.3.4 使用print()函数 7 1.3.5 理解不同的引号 8 1.4 串联两个字符串 10 1.5 用不同的方法串联字符串 11 1.6 本章小结 12 1.7 习题 13 第2章 数值与运算符 ...

    简明python教程(chm)

    为什么不使用Perl? 程序员的话 2. 安装Python Linux和BSD用户 Windows®用户 概括 3. 最初的步骤 简介 使用带提示符的解释器 挑选一个编辑器 使用源文件 输出 它如何工作 可执行的Python程序 获取...

    像计算机科学家一样思考Python(第2版).pdf

    3.11 为什么要有函数 25 3.12 调试 26 3.13 术语表 26 3.14 练习 27 第4章 案例研究:接口设计 30 4.1 turtle模块 30 4.2 简单重复 31 4.3 练习 32 4.4 封装 33 4.5 泛化 34 4.6 接口设计 34 ...

    简明python教程

    为什么不使用Perl? 程序员的话 2. 安装Python Linux和BSD用户 Windows®用户 概括 3. 最初的步骤 简介 使用带提示符的解释器 挑选一个编辑器 使用源文件 输出 它如何工作 可执行的Python程序 获取...

    python简明教程.chm

    为什么不使用Perl? 程序员的话 2. 安装Python Linux和BSD用户 Windows®用户 概括 3. 最初的步骤 简介 使用带提示符的解释器 挑选一个编辑器 使用源文件 输出 它如何工作 可执行的Python程序 获取...

    Python Cookbook

    11.2 避免在编写回调函数时使用lambda 404 11.3 在tkSimpleDialog函数中使用默认值和区间 405 11.4 给Tkinter列表框增加拖曳排序能力 406 11.5 在Tkinter部件中输入一个重音字符 408 11.6 在Tkinter中嵌入内联的...

    Python基础教程(第3版)-201802出版-文字版

    久负盛名的 Python 入门经典针对 Python 3 全新升级十个出色的项目,让你尽快可以使用 Python 解决实际问题目录第 1章 快速上手:基础知识 ........................ 1 1.1 交互式解释器 .............................

    Python 科学计算

    1.1 Python 简介......................................1 1.2 安装软件包......................................2 1.2.1 Python(x,y)..................................... 2 1.2.2 Enthought Python ...

    MySQL 5.1官方简体中文参考手册

    1.5.1. 什么是MaxDB? 1.5.2. MaxDB的历史 1.5.3. MaxDB的特性 1.5.4. 许可和支持 1.5.5. MaxDB和MySQL之间的特性差异 1.5.6. MaxDB和MySQL之间的协同性 1.5.7. 与MaxDB有关的链接 1.6. MySQL发展大事记 1.6.1. ...

    算法心得:高效算法的奥秘(原书第2版).[美]Henry S.Warren,Jr(带详细书签).pdf

    10.15 用Python语言编写的简单代码 210 10.16 除数为常量的精确除法 211 10.16.1 用欧几里得算法计算乘法逆元素 212 10.16.2 用牛顿法计算乘法逆元素 215 10.16.3 乘法逆元素示例 217 10.17 检测除以常数后...

    MySQL 5.1参考手册

    15.1. MyISAM存储引擎 15.1.1. MyISAM启动选项 15.1.2. 键所需的空间 15.1.3. MyISAM表的存储格式 15.1.4. MyISAM表方面的问题 15.2. InnoDB存储引擎 15.2.1. InnoDB概述 15.2.2. InnoDB联系信息 15.2.3. InnoDB配置...

    MySQL5.1参考手册官方简体中文版

    原始参考手册为英文版,与英文版参考手册相比,本翻译版可能不是最新的。 This translation was done by MySQL partner GreatLinux, Beijing, People's Republic of China. GreatLinux Inc. 北京万里开源软件有限...

    MySQL 5.1中文手冊

    15.1. MyISAM存储引擎 15.1.1. MyISAM启动选项 15.1.2. 键所需的空间 15.1.3. MyISAM表的存储格式 15.1.4. MyISAM表方面的问题 15.2. InnoDB存储引擎 15.2.1. InnoDB概述 15.2.2. InnoDB联系信息 15.2.3. InnoDB配置...

    MySQL中文参考手册

    * 0 译者序 * 1 MySQL的一般的信息 o 1.1 什么是MySQL? o 1.2 关于本手册 + 1.2.1 本手册中使用的约定 o 1.3 MySQL的历史 ... + 7.3.8 为列选择正确的类型 + 7.3.9 列索引 + 7.3.10 多列索引 +...

    Java Bug模式详解

    2.2.2 Python 2.2.3 ML 2.2.4 Pascal 2.3 规范的好处 2.4 实现方案与规范的差异 2.5 利用素材建立经济有效的规范 2.5.1 通过测试来排除 规范错误 2.5.2 单元测试的缺陷 2.6 小结 第3章 调试和开发过程 ...

    MySQL 5.1参考手册 (中文版)

    15.1. MyISAM存储引擎 15.1.1. MyISAM启动选项 15.1.2. 键所需的空间 15.1.3. MyISAM表的存储格式 15.1.4. MyISAM表方面的问题 15.2. InnoDB存储引擎 15.2.1. InnoDB概述 15.2.2. InnoDB联系信息 15.2.3. InnoDB配置...

    mysql官方中文参考手册

    15.1. MyISAM存储引擎 15.1.1. MyISAM启动选项 15.1.2. 键所需的空间 15.1.3. MyISAM表的存储格式 15.1.4. MyISAM表方面的问题 15.2. InnoDB存储引擎 15.2.1. InnoDB概述 15.2.2. InnoDB联系信息 15.2.3. InnoDB配置...

Global site tag (gtag.js) - Google Analytics