【发布时间】:2017-08-01 13:53:29
【问题描述】:
我正在尝试创建一个函数,该函数将接收 DNA 字符串,然后对其进行补充(即,如果 A,则给出 T,如果 G,则给出 C [反之亦然])。
到目前为止,我有这个代码:
def Complement(DNA):
DNA = input("Enter your DNA string:")
if DNA == 'A':
result = 'T'
elif DNA == 'T':
result = 'A'
elif DNA == 'G':
result = 'C'
else:
result = 'G'
return (result)
但是,python 将 4 'digit' 字符串作为 'else' 并导致 G 作为输出。如何更改此代码,以便任何人都可以输入随机字母/大小的 DNA 字符串,并且该函数将补充每个字母? 如果您的 DNA 字符串中只有一个没有真正帮助的字母,则此代码有效:/
谢谢
【问题讨论】:
-
您查看的是第一个字母还是 DNA 变量是否包含该字母。您的代码会将存储在 DNA 中的值与“A”或“T”等进行比较。如果 DNA 是 ABC,则不等于“A”,但如果 DNA 只是“A”,则两个字符串相等。这就是如果您有任何超过一个字母的字符串,那么这些字符串将等于任何字符并且结果将设置为 G
-
代码对我有用,请提供您输入的版本。此外,出于安全原因,请使用
raw_input而不是input。最后,要么从参数列表中删除DNA,要么删除input语句,因为你不需要它们两个:) -
@Yan 我认为她(或他)是说她(或他)希望他们的解决方案能够处理超过 1 个字符的输入。
-
@Ambitions 仅供参考,
raw_input在 Python 3 中已重命名为input。(当然,不确定这里使用的是哪种语言。) -
python 3^ raw_input 对字符串长度问题没有帮助