2016-03-23 3 views
0

Привет, так что это мой код по какой-то причине после последнего цикла, код просто проскакивает прямо в оператор else и печатает его примерно 4 раза, а затем переходит к выражению if и печатает решение , Пожалуйста, помогите с этим.Код Python пропускается в другое

while True: 
    d = {} 
    with open("keyword_database.txt") as f: 
     for line in f: 
      (key,val) = line.split(":") 
      d[str(key)] = val 
    try: 
     userinput=input(str("What is the problem with your phone?\nEnter here in lower:")) 
     print() 
    except: 
     print ("Invalid Input") 
    for word in userinput.split(): 
      if word in d: 
       print(d[word]) 
       print() 
      else: 
       print("Please Re-Phrase your problem and Try Again") 
       print() 

И это то, что он печатает после запуска кода.

В чем проблема с телефоном? Введите здесь ниже: мой телефон сломанный

Пожалуйста Re-разговорник ваша проблема и попробуйте еще раз

Пожалуйста Заново Фразу вашу проблему и попробуйте еще раз

Пожалуйста Заново Фразу вашу проблему и попробуйте еще раз

Проблема = Разбитое решение = Возьмите телефон в ремонтную мастерскую и получите , но он зафиксирован оттуда, однако имейте в виду, если кто-то еще откроет ваш телефон , кроме яблока, тогда Warrenty будет VOID (НЕ АКТИВНО).

+4

Это потому, что ' 'my'','' phone'' и ' 'is'' не в' d'. Итак, для * этих трех слов * используется ваша ветка 'else'. Вам нужно переосмыслить, как вы тестируете словосочетание. –

ответ

0

попробовать это:

for word in userinput.split(): 
    result = "" 
    if word in d: 
     result += d[word] + "\n" 

if (len(result) == 0): 
    result += "Please Re-Phrase your problem and Try Again\n" 
print (result) 
Смежные вопросы