编写一个Python脚本,要求用户输入两个DNA 具有相同长度的序列。如果两个序列有 不同的长度然后输出“无效输入,长度必须 相同!”如果输入有效,则计算该处有多少个 DNA 碱基 这两个序列中的相同位置相等并输出 回答“这两个序列的x位置具有相同的 字符”。x是实际数字,取决于用户的 输入。
以下是我目前所掌握的内容。
g=input('Enter DNA Sequence: ')
h=input('Enter Second DNA Sequence: ')
i=0
count=0
if len(g)!=len(h):
print('Invalid')
else:
while i<=len(g):
if g[i]==h[i]:
count+=1
i+=1
print(count)
最佳答案
在 while 循环中执行此操作(在实际代码中选择更好的变量名称):
for i, j in zip(g, h):
if i == j:
count += 1
或者将循环完全替换为
count = sum(1 for i, j in zip(g, h) if i == j)
这将修复您的索引错误。一般来说,你不应该在 python 中索引列表,而应该循环它们。如果您确实想要对它们进行索引,则 i <= len(g)
是问题所在...应该更改为 i < len(g)
.
如果你想变得非常棘手,你可以使用 True == 1
这个事实和False == 0
:
count = sum(int(i == j) for i, j in zip(g, h))
关于python - 我需要计算 python 中同一位置的类似字符,但我不知道如何正确计算,因为我是该程序的新手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19237543/