gpt4 book ai didi

python - 如何递归翻译DNA? (没有 while/for 循环,也没有翻译函数)在 Python 中

转载 作者:行者123 更新时间:2023-12-05 09:26:34 24 4
gpt4 key购买 nike

所以我需要翻译 DNA,但我不允许使用任何循环,它必须递归地完成。没有任何循环,我真的不知道该怎么做……因为没有循环,它一次只能打印 1 个核苷酸。翻译功能也是不允许的。

def one_dna_to_rna(c):
"""Converts a single-character c from DNA nucleotide
to complementary RNA nucleotide
"""
if c == 'A':
return 'U'
if c == 'C':
return 'G'
if c == 'G':
return 'C'
if c == 'T':
return 'A'
else:
return ""

def transcribe(s):
""" Argument is a string consisting of DNA nucleotis (A, C, G, T)
Output will be (A -> U, C -> G, G -> C, T -> A)
"""

#nucleotides = ['A', 'C', 'G', 'T', " "]

x = len(s) - 1

if s == "":
return ""

if s[0:x] == 'A':
return one_dna_to_rna(s)
if s[0:x] == 'C':
return one_dna_to_rna(s)
if s[0:x] == 'G':
return one_dna_to_rna(s)
if s[0:x] == 'T':
return one_dna_to_rna(s)
return one_dna_to_rna(s) + transcribe(s[0:x])

#Tests
#assert transcribe('ACGTTGCA') == 'UGCAACGU'
#assert transcribe('ACG TGCA') == 'UGCACGU'
#assert transcribe('GATTACA') == 'CUAAUGU'

最佳答案

这个函数修改可能对解决问题没有帮助,但是当你必须放置这么多 if 条件时,它会很有帮助。

def one_dna_to_rna(c):
dna_rna={'A':'U','C':'G','G':'C','T':'A'}
if c in dna_rna:
return dna_rna[c]
else:
return ""

关于python - 如何递归翻译DNA? (没有 while/for 循环,也没有翻译函数)在 Python 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73784282/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com