不确定for循环

Zac*_*ack 0 python string function

不知道我在这里做错了什么.任何帮助,将不胜感激.当我输入包含不良变量(如Z)的DNA序列时,我会继续返回True.有人能指出原因吗?

谢谢

def is_valid_sequence(dna):
    """ (str) -> bool

    >>> is_valid_sequence('ATCG')
    True
    >>> is_valid_sequence('AZT')
    False
    >>> is_valid_sequence('atcg')
    False

    Returns a boolean result based on whether dna is a valid
    dna sequence.
    """



    for char in dna:
        if char in "TCGA":
            return True
        else:
            return False
Run Code Online (Sandbox Code Playgroud)

ars*_*jii 7

你将在循环的第一次迭代中返回:return 结束函数,循环体中的所有路径都包含一个return.你可能想要

for char in dna:
    if char not in 'TCGA':
        return False
return True
Run Code Online (Sandbox Code Playgroud)

或者,更多的Python:

return all(char in 'TCGA' for char in dna)
Run Code Online (Sandbox Code Playgroud)