【发布时间】:2016-12-10 22:36:10
【问题描述】:
我对 python 很陌生。我在网上找到了有关此函数主体的一些帮助(我删除了示例以缩短它)但是我对“返回真”语句相对于整个代码主体的含义感到困惑。我理解第一个 if 语句,但不理解“return True”语句,因为它没有 elif 或 else 。我还注意到 return True 语句在 if 语句下没有缩进。这有什么解释吗?谢谢!
def is_valid_sequence(dna):
""" (str) -> bool
Return True if and only if the DNA sequence is valid
(that is, it contains no characters other than 'A', 'T', 'C' and 'G').
"""
valid_dna = 'ACGT'
for nucleotide in dna:
if nucleotide not in valid_dna:
return False
return True
【问题讨论】:
-
为什么需要
else?当for循环结束而if没有匹配时,到达最后一行。如果if测试确实匹配nucleotide值之一,则到达return False并且函数结束。 -
欢迎来到 Stack Overflow。查看此代码如何工作的一种方法是添加打印语句以帮助您遵循流程。你也可以下载PyCharm Community Edition并使用它的调试器。
-
或者试试pythontutor.com
-
这样想,“函数应该总是
return True,除非被另一个return语句截获”。在这种情况下,如果return False的条件通过,函数将在此时退出。现在,即使您没有任何return True语句,默认情况下该函数也会静默return None。自己测试一下。尝试在没有最后一行的情况下运行此函数并看到它是type()。
标签: python python-3.x