2016-08-03 3 views
-1

私は現在、ユーザが入力した文の中でユーザが入力した単語の相対的な位置をリストすることができるスクリプトをコーディングしています。私のPythonスクリプトは、 'if'と 'else'文を同時に実行しているように見えますが、結果として出力が正しくありません。この問題を解決する方法はありますか?

たとえば、「私はStockoverflowが大好きで、情熱を持って愛しています」という文章を入力することができます。

ユーザが入力を求められたときに「love」と入力すると、システムは入力された文章を「love」という単語で自動的にスキャンします。入力された文章中に、その文章を構成する単語の位置が出力されると、この場合、「Love」が文の2位と5位に現れる。

これにもかかわらず、システムは単語の相対的な位置として '単語は見つかりませんでした'と出力します。

助けが必要ですか?いずれかのステートメントが入力された単語のコンテキストに適用できないにもかかわらず、システムは 'if'および 'else'ステートメントを実行するように見えます。

sentence= input("Please enter a sentence: ") 
keyword= input("Input a keyword from the sentence: ").lower() 
words = sentence.lower() 
words = sentence.split() 
for (i, word) in enumerate(words): 
    if (word == keyword): 
     print("Your key word,'",keyword,"'appears in positions '",(i+1), "of your inputted sentence.") 
    else: 
    print("Your entered word",keyword,"is not present in the sentence you entered.") 

その典型的な出力:次のように

私のコードがある

Python 3.5.1 (default, Dec 2015, 13:05:11) 
[GCC 4.8.2] on linux 

Please enter a sentence: Is Stockoverflow this. 
Input a keyword from the sentence: This 
Your key word,' this 'appears in positions ' 3 'of your inputted sentence. 
Your entered word this is not present in the sentence you entered. 
=> None 

を任意の助けいただければ幸いです!

+4

「else」文をインデントしてエラーを修正してください! –

+1

空の 'else:'節( 'pass'なし)が構文エラーを引き起こさなかったのに驚いています。 –

+0

ここであなたのコードを投稿したときにあなたのインデントをさらに悪化させ、 'else'はもともと' if'の代わりに 'for'に付いていました。 – user2357112

答えて

1

空白がありませんでした。

for (i, word) in enumerate(words): 
    if (word == keyword): 
     print("Your key word,'",keyword,"'appears in positions '",(i+1), "of your inputted sentence.") 
    else: 
     print("Your entered word",keyword,"is not present in the sentence you entered.") 
+2

コメントで十分でしょう –

+1

これはちょうど*別の*間違った結果をもたらします。 – user2357112

+0

でも、同様の効果が得られます。 – ACoolGuy

関連する問題