2017-12-08 4 views
0

部分文字列が特定の文字列の一部であるかどうかを確認する必要があります。部分文字列は「AAA」であり、指定された文字列内に見つかった場合はTrueを返す必要があります。それは、文字列内にない場合、それはPython:文字列内の部分文字列を検索するが、インデックス位置の代わりにTrueまたはFalseを返す

def isResistent(virus): 
    gen = "AAA" 
    if gen in virus: 
     print("True") 
    else: 
     print("False") 

isResistent('GCAAGCTGGTCGTGAAAGCT') 

それは、TrueまたはFalseを返すFalseを返す必要がありますが、TrueまたはFalse以外にも、それは最初のインデックス番号か何かを与えます。私はプログラムを複数回実行すると、それが返されます。

出力:

2 
True 

1 
True 

2 
True 

4 
True 

0 
True 

それが唯一のTrueまたはFalseに印刷することは可能ですか?

+0

このコードは、あなたの主張通りに動作しません。 –

+2

他の場所に1か2などを印刷します。 –

+0

なぜ 'print '(True)'と 'return True'ですか? – RoadRunner

答えて

4

あなたの機能はちょうどreturn 'AAA' in virusです。

def isResistent(virus): 
    return 'AAA' in virus 

>>> isResistent('GCAAGCTGGTCGTGAAAGCT') 
True 
+0

これは素晴らしいです、ありがとう! –

0

あなたの代わりにreturnを使用するときにあなたの機能が正常に動作します:

def isResistent(virus): 
    gen = "AAA" 
    if gen in virus: 
     return True 
    else: 
     return False 

>>> isResistent('GCAAGCTGGTCGTGAAAGCT') 
True 
>>> isResistent('GCAAGCTGGTCGTGGCTGCT') 
False 

あなたが将来的に"AAA"以外の他のサブ文字列をテストすることができますので、私はまた、関数のパラメータとしてgenが含まれます:

def isResistent(virus, gen): 
    return gen in virus 

>>> isResistent('GCAAGCTGGTCGTGAAAGCT', 'AAA') 
True 
>>> isResistent('GCAAGCTGGTCGTGGCTGCT', 'AAA') 
False 
>>> isResistent('GCAAGCTGGTCGTGAAAGCT', 'AGC') 
True 
関連する問題