3.1.4 用户自定义数据类型

作为自定义数据类型的运行示例,我们将讨论一个用于带电粒子的数据类型Charge。具体来说,我们感兴趣的是采用库仑定律(Coulomb's law)的二维模型,即带电粒子在给定位置点的电势可表示为:V = kq / r,其中,q为电荷量,r表示给定位置点与电荷之间的距离,k = 8.99×109 N m2/C2k是一个常量,称之为静电常数或库仑常数)。平面中带电粒子的库仑定律如图3-1-2所示。

图3-1-2 平面中带电粒子的库仑定律

为了保持一致性,我们采用SI(Système International d'Unités,国际单位制):在公式中,N表示牛顿(力),m表示米(距离),C表示库仑(电荷)。当存在多个带电粒子时,在给定位置点的电势等于各个带电粒子产生的电势之和。我们的目标是给定一系列带电粒子,计算一个平面中不同位置点的电势。为了实现目标,我们编写程序创建和操作Charge对象。

程序3.1.1 识别潜在基因(potentialgene.py)

程序3.1.1接收一个正整数命令行参数:一个DNA序列。然后确定序列是否对应一个潜在的基因:长度为3的倍数,以起始密码子(ATG)开始,以终止密码子(TAA、TAG或TGA)结束,并且没有干扰的终止密码子。程序3.1.1的运行过程和结果如下: ...

Get 程序设计导论:Python语言实践 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.