用于计算 DNA 序列中 GC 含量的初级 Python 脚本

jst*_*hel 2 python function rosalind

我正在尝试计算 Rosalind 问题的 DNA 序列的 GC 含量(以%为单位)。我有以下代码,但它返回 0,或者仅返回 G 的数量或单独的 C 的数量(无百分比)。

x = raw_input("Sequence?:").upper()
total = len(x)
c = x.count("C")
g = x.count("G")

gc_total = g+c

gc_content = gc_total/total

print gc_content
Run Code Online (Sandbox Code Playgroud)

我也尝试过这个,只是为了获取 G 和 C 的计数,而不是百分比,但它只是返回整个字符串的计数:

x = raw_input("Sequence?:").upper()
def gc(n):
    count = 0
    for i in n:
        if i == "C" or "G":
            count = count + 1
        else:
            count = count
    return count
gc(x)
Run Code Online (Sandbox Code Playgroud)

编辑:我修复了第一个代码示例中 print 语句中的拼写错误。这不是问题,我只是粘贴了错误的代码片段(有很多尝试......)

Owe*_*wen 5

您的问题是您正在执行整数除法,而不是浮点除法。

尝试

gc_content = gc_total / float(total)
Run Code Online (Sandbox Code Playgroud)