我正在尝试计算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我也尝试过这样做,只是为了得到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)编辑:我修复了第一个代码示例中print语句中的拼写错误。这不是问题所在,我只是粘贴了错误的代码片段(尝试了很多次……)
发布于 2013-06-04 09:44:38
不应该:
打印cg_content
朗读
print gc_content?
至于另一段代码,您的循环说
if I == "C“or "G":
这就是每次计算"G“为true,从而将if语句作为true运行。
相反,它应该是
if I == "C“or i=="G":
而且,您也不需要那个else语句。
希望这能有所帮助。让我们知道它的进展如何。
阿卜杜勒·萨塔尔
发布于 2013-06-04 09:41:48
你的问题是你执行的是整数除法,而不是浮点除法。
试一试
gc_content = gc_total / float(total)发布于 2013-10-12 15:02:11
您还需要将答案乘以100才能将其转换为百分比。
https://stackoverflow.com/questions/16908475
复制相似问题