1)3つの文字列引数を取る関数勝者を書く。最初の2つの引数は、ペニー・アンテ・ゲームの2人の選手が選んだコイントーチの結果のシーケンスを表しています。 3番目の議論は、効果的にコインを繰り返し投げたときに得られる一連の結果です。この関数は、最初に選択したシーケンス(最初の引数)がゲームに勝った場合は値1を返し、2番目の選択されたシーケンス(2番目の引数)がゲームに勝った場合は値2を返し、第3引数として渡されたコイントーシスの順序で観察された。最初の2つの引数が同じ場合、AssertionErrorを発生させ、メッセージシーケンスを等しくすることはできません。最初の2つの引数の長さが同じでない場合は、メッセージシーケンスの長さを同じにしてAssertionErrorを生成する必要があります。Python:別の文字列内に文字列が何回現われるか
問題:私のコードは、例えば、すべての場合に動作しない:winnaar( 'KKK'、 'MKK'、 'KMKMKKKKMKKKMMMMKMKK')
が正しい結果である:私のコードで2 結果は:1
def winnaar(seq1, seq2, seq3):
"""
>>> winnaar('KKK', 'MKK', 'KMKMKKKKMKKKMMMMKMKK')
2
>>> winnaar('MKM', 'MMK', 'KMKMKKKKMKKKMMMMKMKK')
1
>>> winnaar('MKK', 'KKM', 'KKKKKKKKKKKKKKKKKKKK')
0
>>> winnaar('MKK', 'MKK', 'KKKKKKKKKKKKKKKKKKKK')
Traceback (most recent call last):
AssertionError: reeksen mogen niet gelijk zijn
>>> winnaar('MKKM', 'MKK', 'KKKKKKKKKKKKKKKKKKKK')
Traceback (most recent call last):
AssertionError: reeksen moeten zelfde lengte hebben
"""
if seq3.find(seq1) > seq3.find(seq2):
return 1
if seq3.find(seq1) < seq3.find(seq2):
return 2
if seq1 and seq2 not in seq3:
return 0
assert (seq1) == (seq2), "ongeldig serienummerreeksen mogen niet gelijk zijn"
assert len(seq1) != len(seq2), "reeksen moeten zelfde lengte hebben"
これを2つの異なる質問に分割してください。 – glibdud
最初の質問については、 '>'と '<'演算子を反転する必要があります。また、この1つの 'seq1とseq2はseq3にありません。'(seq1)と(seq2ではseq3にない)と評価されるので、正しいものではありません。 –