我经常可以解答老师给我的练习,尽管并不总是最“pythonic”的。任何人都可以改进我的代码也许'if'陈述可以写在较少的行上?这可以写成更多'pythonic'吗?
def omgekeerdComplement(string):
"""
Writes the complement and the reverse of the given DNA string
>>> omgekeerdComplement('GATATC')
'GATATC'
>>> omgekeerdComplement('GCATGC')
'GCATGC'
"""
newstr = ''
for i in range(0, len(string)):
if string[i] == 'G':
newstr += 'C'
elif string[i] == 'C':
newstr += 'G'
elif string[i] == 'A':
newstr +='T'
else:
newstr += 'A'
return str(newstr[::-1])
if __name__ == "__main__":
import doctest
doctest.testmod()
干杯!
*写*补充 - 显示输入字符串和预期的结果 – RomanPerekhrest
你的测试用例是真正奇怪的 - 你只选择那些在输出是一样的输入! –
如果这是您认为可以改进的**工作代码**,请参见[codereview.se]。注意你可以用两行来做:'mapping = {'G':'C',...};返回''.join([字符串[:: - 1]中的字符映射[char]])''。 – jonrsharpe