在本章中,你将学习以下两方面的基本知识:
-
- 函数
- 使用Python调试包pdb
函数是程序重要的组成部分,你将在第七章中使用它们,并学习如何使用随机化来模拟DNA突变。Python调试包pdb可以将程序放缓,按步执行找到出错的地方。
1.函数
函数是组织好的代码块,并提供一种方法(函数名称)可以传递一些值进行计算,然后返回结果。程序可以通过调用函数名称来使用函数中的代码,将函数所需的值传递给函数中的代码,然后返回结果,这种方式使用或“调用”通常称为调用函数。Python有许多内建的函数,例如上述使用的print、input、open等等。
1.1 函数的优势
函数可以将程序抽象、模块化以及将代码组织成输入和输出的可管理块来创建大型程序的能力。
假设你需要计算某些内容,例如计算程序中几个地方或不同程序中的分布均值。编写函数后,你就可以在需要使用的地方调用函数,从而是你的程序:
-
- 简短,因为减少了重复代码
- 更容易测试,因为可以单独测试函数
- 易于理解,函数使程序组织更清晰
- 更可靠,因为在重用函数时,代码少,因此出错机会更少
- 开发快,因为你可能已经编写了一些处理基本统计数据的函数,使用时只需调用计算均值的函数而无需再次编写。或者,你找到了一个别人写好的统计库,不需要你编写了。
函数本身也可以调用其它函数,通过编写一组函数,每个函数都可以完成一项或几项工作,然后通过各种方法将它们组合起来形成新的函数,最终结果是形成强大灵活的编程系统。在编程中,将问题分解为可以方便组合的函数集,使可以创建适应不断变化的条件而只需花费最小代价。
所有这些内容的诀窍在于如何将代码分区为函数。函数封装了一些常用的东西,而不是只调用一次;函数应该只做一件事,代码只有一两页。这些不是真正的标准,但可以帮助你将代码划分为适用于函数的可管理块。
1.2 编写函数
让我们看看如何使用函数,然后看看它们是如何定义的。
调用函数,传递数据给函数数,然后接收返回值。例如,假设你想实现一个函数addACGT,给定一些DNA,将“ATCG”添加到DNA的末端并返回新的DNA。在Python中,通常键入函数名称来调用函数,然后是带括号的参数列表。例如,使用参数dna嗲用函数addACGT:
1 |
|
例子6-1演示了该函数,详细说名了原理。
例子6-1 DNA末端加ACGT函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|