2つの文字列を入力として受け取り、2番目の文字列のすべての文字が最初の文字列にあるかどうかを調べるPythonコードを記述しようとしています。そうであれば、出力は2番目の文字列になります。そうでない場合、出力は文字列 "This does not work"です。私はこの手順をさまざまな入力に対してテストしました。通常は動作しますが、必ずしもそうではありません。たとえば、2つの入力がそれぞれ「helo」と「olhe」の場合、「olhe」のすべての文字が「helo」に存在するため、出力は「これは機能しません」、「olhe」にする必要があります。ここでなぜこのコードはすべての入力に対して機能しないのですか
は、なぜこれが動作しない私のコード
def fix_machine(debris,product):
n = 1
while True:
first_element = product[0:n]
find_first_element = debris.find(first_element)
if first_element == product:
return product
break
n = n + 1
if find_first_element == -1:
return "This does not work"
break
のですか?
ステップ、それによってそれを書くための代替方法だと知ります。 – Blorgbeard
インデントにはタブとスペースの組み合わせがあります。これはPythonの非常に悪い考えです。スペースのみを使用してコードを修正するようにテキストエディタを設定します。 –
'product [0:n]'は、 'product'の連続した大きな部分を返します。それは個々の文字を生成しません。 –