2017-01-11 13 views
0

こんにちは私はトラブルシューティングプログラムを作成していますが、ユーザーが1つの単語の問題を入力すると、csvに単語が見つかり、正しいアドバイスが出力されます。しかし、問題は、複数の単語がユーザによって入力され、何も見つからず、何の助言も出力されない場合、プログラムは停止する。Python 3 .csvファイル内に複数の単語が見つかりました

import csv 
import webbrowser 

print("Hello! Welcome to trouble shooter 2.0") 

def menu(): 
    try: 
     Phone = int(input("""What is your operating system? 
    Please choose the corresponding number: 
    1) iOS 
    2) Android 
    3) Other 
    > """)) 

     if Phone == 1: 
      print("Thank you iOS user") 
     elif Phone == 2: 
      print("Thank you Android user") 
     elif Phone == 3: 
      print("Thank you") 
     else: 
      print("please find out") 
      exit() 
    except ValueError: 
     print("please enter a numerical input") 
     menu() 

menu() 


task2 = open ("problem list.csv") 
Problem = input ("""Please enter the issue you wish to resolve 
>""") 
KeyWords = Problem.split() 
reader = csv.reader(task2, delimiter=',') 

for row in reader: 
    if Problem == row[0]: 
      print(row[1]) 
    else: 
     print("we do not have an answer for this") 


helpful = input(""" 


Was this helpful?""").lower() 
if helpful[0] == 'n': 
    google = input("in this case, please input your issue, for a google search: ") 
    webbrowser.open_new_tab('http://www.google.com/search?btnG=1&q=%s'% google) 

elif helpful[0] == 'y': 
    print(""" 
You are welcome""") 
    exit() 
+1

あなたはすでにユーザー入力を個々のキーワードに分割しています。それらを使用しようとしています。 – mkrieger1

答えて

0

問題が==行[0]ならば問題はである:、問題はあなたがすべきことを意味するリスト内のすべての値をチェックする必要があります。だから、リストでsplit関数の戻り値でありますif row in Keywords :を使用してください。

理論的にはまだテストしていませんでした。

私はあなたがこの

KeyWords = Problem.split() 

row[0]が単語である、とKeyWordsのタイプは今listあるので、なぜあなたがしようとしていないようですので、実際には、KeyWords代わりのProblemを使用することができますを忘れてしまったと思います

+0

python3.xで 'input'はユーザーが入力した文字列をそのまま' string'として渡すので、 'str()'を使う必要はありません – McGrady

+0

@McGrady – james

0

これは:

if row[0] in KeyWords: 
      print(row[1]) 

あなたのコードに間違いがあります。

これが役に立ちます。