2016-08-23 2 views
2

私はユーザーからraw_inputを取得し、その入力から必要な単語を見つけようとしています。必要な単語があれば、関数が実行されます。だから私は.split入力を分割しようとしましたが、必要な単語がリストに含まれているかどうかをどのようにして見つけますか?文から必要な単語を探して選択しますか?

答えて

6

これは本当に簡単です。 Pythonはinの演算子を持っています。文字列内に単語が存在するかどうかを確認し、それ以外の場合は実行します。

sentence = 'hello world' 
required_word = 'hello' 

if required_word in sentence: 
    # do whatever you'd like 

あなたは、アクションhereinオペレータのいくつかの基本的な例を見ることができます。

入力の複雑さや必要単語の複雑さにもよりますが、いくつかの問題が発生する可能性があります。それに対処するには、あなたの必要な言葉にもう少し具体的になりたいかもしれません。

はのは、例えば、これを見てみましょう:

sentence = 'i am harrison' 
required_word = 'is' 

あなたが単語「ハリソン」の部分文字列ですis技術的に手紙のでif required_word in sentence:を行うにした場合は、この例では、Trueと評価されます。それは、特に別の単語としてではなくとして必要な単語の出現を探します単語の前と後の空きスペースを置くことによって

sentence = 'i am harrison' 
required_word = ' is ' 

:あなたは、単にこれを行うだろうと固定するために

単語の一部

HOWEVER、あなたが一致する部分文字列と単語の出現で大丈夫であれば、以前説明したことは無視できます。

単語のグループがあり、必要なものがあれば、どうすればよいですか?同様に、必要な単語は「はい」または「はい」のいずれかです。ユーザーの入力には「はい」または「はい」が含まれています。この質問を1として

、実装は次のようになります。

sentence = 'yes i like to code in python' 
required_words = ['yes', 'yeah'] 
       ^^^ ^
# add spaces before and after each word if you don't 
# want to accidentally run into a chance where either word 
# is a substring of one of the words in sentence 

if any(word in sentence for word in required_words): 
    # do whatever you'd like 

これはany演算子を使用しています。 required_wordsの単語の少なくとも1つがsentenceにある限り、ifステートメントはtrueと評価されます。

+2

質問がサブストリングよりも単語を探していると思います –

+0

@ cricket_007:いいえ、私はjを探しているときに答えに満足していますいずれにせよ、私はいつもより多くの知識を受け入れたいと思っています。 –

+0

@Divyansh_Cクリケットは、あなたが部分文字列ではなく単語を探していることを知っていることを確認するのが正しいです。 'required_word = 'is''に関する私の答えの例を見てください。そのような場合に「真」と評価された式は大丈夫でない限り、できるだけ具体的に試してみるべきです。 – Harrison

1

ハリソンの方法は一方向です。ここで他の方法は、次のとおり

ウェイ1:

sentence = raw_input("enter input:") 
words = sentence.split(' ') 
desired_word = 'test' 

if desired_word in words: 
    # do required operations 

ウェイ2:

import re 

sentence = raw_input("enter input:") 
desired_word = 'test' 
if re.search('\s' + desired_word + '\s', sentence.strip()): 
    # do required operations 

ウェイ3(単語の末尾に句読点がある場合は特に):

import re 

sentence = raw_input("enter input:") 
desired_word = 'test' 
if re.search('\s' + desired_word + '[\s,:;]', sentence.strip()): 
    # do required operations 
関連する問題