gpt4 book ai didi

python - Python 3 中的除法给出与 Python 2 中不同的结果

转载 作者:行者123 更新时间:2023-11-28 19:49:36 25 4
gpt4 key购买 nike

在下面的代码中,我想计算序列中 G 和 C 字符的百分比。在 Python 3 中,我正确地得到了 0.5,但是在 Python 2 中,我得到了 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')

最佳答案

/ 是 Python 3 中的不同运算符;在 Python 2 中,当应用于 2 个整数操作数时,/ 会改变行为,并改为返回 floor-division 的结果:

>>> 3/2   # two integer operands
1
>>> 3/2.0 # one operand is not an integer, float division is used
1.5

添加:

from __future__ import division

在代码的顶部使 / 在 Python 2 中使用浮点除法,或使用 // 强制 Python 3 使用整数除法:

>>> from __future__ import division
>>> 3/2 # even when using integers, true division is used
1.5
>>> 3//2.0 # explicit floor division
1.0

使用这些技术中的任何一种都适用于 Python 2.2 或更新版本。参见 PEP 238有关更改原因的详细信息。

关于python - Python 3 中的除法给出与 Python 2 中不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17531874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com