Он печатает True
или False
как побочный эффект , и он возвращает None
. В общем, мы хотели бы написать функции, которые не имеют побочных эффектов (так называемые «чистые» функции), и вместо этого вернуть из них все, что нам нужно. (За исключением отладки: мы печатаем вещи изнутри функций все время во время отладки.)
Вы, вероятно, захотите сделать это:
def common_motif(dna_seq1, dna_seq2, x):
"""This function is stupid """
count_1 = dna_seq1.count(x)
count_2 = dna_seq2.count(x)
if count_1 > 0:
if count_2 > 0:
return True
else:
return False
Обратите внимание, что это все еще может вернуть None
,например, если count_1 > 0
и count_2 < 0
. Python-функции, которые не имеют явного return
, просто возвращают None
.
В зависимости от желаемой логики, вы можете охватить эту возможность и немного упростить вещи:
def common_motif(dna_seq1, dna_seq2, x):
"""This function is stupid """
count_1 = dna_seq1.count(x)
count_2 = dna_seq2.count(x)
return (count_1 > 0) and (count_2 > 0)
Возвращает True
, если эти два условия выполнены, и False
в противном случае.