2017-11-04 17 views
0

現在、私はそれぞれのキーワードのリストを持っています。これを1つの配列または文字列にして各キーワードを分けて個別の単語を検索する方法があります反復可能?Python文字列内の特定のキーワードを検索する

keywordlist = ("pricing") 
keywordlist1 = ("careers") 
keywordlist2 = ("quotes") 
keywordlist3 = ("telephone number") 
keywordlist5 = ("about") 
while True: 
    question1 = raw_input("Is there anything I can help with today? ") 
    question_parts = question1.split(" ") 
    for word in question_parts: 
     if word.lower() in keywordlist: 
      print("Yah i can show you some pricing: ") 
     elif word.lower() in keywordlist1: 
      print("Here is our career page and feel free to apply: ") 
     elif word.lower() in keywordlist2: 
      print("yah i can show you to our quote page: ") 
     elif word.lower() in keywordlist3: 
      print("Yah here is our contact page and feel free to contact us: ") 
     elif word.lower() in keywordlist5: 
      print("Here is some information about us:") 
     goagain = raw_input("Would you like any More Help? (Yes/No)") 
     if goagain == "Yes": 
      #Get values again 
      pass #or do whatever 
     elif goagain != "Yes": 
      print ("Bye!") 
    break 
+0

あなた 'keywordlist'などを使用することができますが、彼らはただの文字列だ、リストやタプルではありません。 –

答えて

3

あなたはdictionary

keywords = {"pricing": "Yah i can show you some pricing: " 
      "careers": "Here is our career page and feel free to apply: " 
      "quotes": "yah i can show you to our quote page: " 
      "telephone": "Yah here is our contact page and feel free to contact us: " 
      "about": "Here is some information about us:"} 
while True: 
    question1 = raw_input("Is there anything I can help with today? ") 
    question_parts = question1.lower().split() 
    for word in question_parts: 
     if word in keywords: 
      print(keywords[word]) 
    goagain = raw_input("Would you like any More Help? (Yes/No)") 
    if goagain == "Yes": 
     #Get values again 
    else: 
     print ("Bye!") 
     break 
+0

いい仕事です。 FWIW、 '.split'呼び出しを' question1.split() 'に変更して、すべての空白で分割することができます。 –

+0

@ PM2Ring完了!また、毎回変換することを避けるために、入力文字列全体を小文字に変換します。ありがとうございました! –

+0

良いアイデア。私は自分の答えでそれをやったが、言及するのを忘れていた(あなたがあなたの投稿したことを今投稿するのは気にならない)。文字列の大文字小文字を変換するのはかなり安いですが、同じ文字列を何度も繰り返す必要はありません。 –

0

使用正規表現

import re 
KEYWORD_MAPPING = { 
     "pricing": "Yah i can show you some pricing:", 
     "careers": "Here is our career page and feel free to apply:", 
     "quotes": "yah i can show you to our quote page:", 
     "telephone": "Yah here is our contact page and feel free to contact us: ", 
     "about": "Here is some information about us:" 
} 

def search_for_keyword(question): 
    keyword_pattern = r'{}'.format('|'.join(KEYWORD_MAPPING.keys())) 
    keyword = re.search(keyword_pattern, question, re.I).group() 
    if not keyword: 
     return False 
    print(KEYWORD_MAPPING[keyword]) 
    return True 

while True: 
     question = input('enter a question') 
     status = search_for_keyword(question) 
     if not status: 
      break 
関連する問題