在下面的代码中,我想计算序列中G和C字符的百分比。在python3中,我正确地得到0.5
,但在python2上,我得到0
。为什么结果不同?在
def gc_content(base_seq):
"""Return the percentage of G and C characters in base_seq"""
seq = base_seq.upper()
return (seq.count('G') + seq.count('C')) / len(seq)
gc_content('attacgcg')
Tags:
在python2.x中,
/
执行整数除法。在要获得所需的结果,可以使用
^{pr2}$float()
将其中一个操作数更改为浮点:或从
__future__
使用division
:/
是Python 3中的一个不同运算符;在Python 2中,/
在应用于2个整数操作数时会改变行为,并返回底数除法的结果:添加:
^{pr2}$要使
/
在Python 2中使用浮点除法,或使用//
强制Python 3使用整数除法:在Python2.2或更高版本中使用这两种技术都可以。请参见PEP 238以了解更改原因的基本细节。在
对于Python2
/
是整数除法,而分子和分母都是int
,您需要确保强制浮点除法例如
或者,您可以
^{pr2}$在文件的顶端
相关问题 更多 >
编程相关推荐