1

Итак, как я мог сделать свой код, вместо того, чтобы ставить от 1 до 4, я мог бы просто добавить ключевое слово, например «Замерзание» или «Фроз». Как я могу поместить поискового робота в свой код, вся помощь очень ценится в развитых :)Как я могу поместить ключевые слова в мой код?

def menu(): 
    print("Welcome to Kierans Phone Troubleshooting program") 
    print("Please Enter your name") 
    name=input() 
    print("Thanks for using Kierans Phone Troubleshooting program "+name +"\n") 

def start(): 
    select = " " 
    print("Would you like to start this program? Please enter either y for yes or n for no") 
    select=input() 
    if select=="y": 
    troubleshooter() 
    elif select=="n": 
    quit 
    else: 
    print("Invalid please enter again") 

def troubleshooter(): 
    print("""Please choose the problem you are having with your phone (input 1-4): 
1) My phone doesn't turn on 
2) My phone is freezing 
3) The screen is cracked 
4) I dropped my phone in water\n""") 
    problemselect = int(input()) 
    if problemselect ==1: 
    not_on() 
    elif problemselect ==2: 
    freezing() 
    elif problemselect ==3: 
    cracked() 
    elif problemselect ==4: 
    water() 
    start() 

def not_on(): 
    print("Have you plugged in the charger?") 
    answer = input() 
    if answer =="y": 
    print("Charge it with a diffrent charger in a diffrent phone socket. Does it work?") 
    else: 
    print("Plug it in and leave it for 20 mins, has it come on?") 
    answer = input() 
    if answer=="y": 
    print("Are there any more problems?") 
    else: 
    print("Restart the troubleshooter or take phone to a specialist\n") 
    answer=input() 
    if answer =="y": 
    print("Restart this program") 
    else: 
    print("Thank you for using my troubleshooting program!\n") 

def freezing(): 
    print("Charge it with a diffrent charger in a diffrent phone socket") 
    answer = input("Are there any more problems?") 
    if answer=="y": 
    print("Restart the troubleshooter or take phone to a specialist\n") 
    else: 
    print("Restart this program\n") 

def cracked(): 
    answer =input("Is your device responsive to touch?") 
    if answer=="y": 
    answer2 = input("Are there any more problems?") 
    else: 
    print("Take your phone to get the screen replaced") 
    if answer2=="y": 
    print("Restart the program or take phone to a specialist\n") 
    else: 
    print("Thank you for using my troubleshooting program!\n") 

def water(): 
    print("Do not charge it and take it to the nearest specialist\n") 

menu() 
while True: 
    start() 
    troubleshooter() 

ответ

1

Поскольку вы хотите, чтобы пользователь вводил описание проблемы телефона, вам, вероятно, нужен список проблем и ключевых слов, связанных с этими проблемами. Следующая программа показывает, как вы можете организовать такую ​​базу данных и как ее искать на основе ввода пользователя. Есть более быстрые альтернативы этому решению (например, индексирование базы данных), но эта базовая реализация должна быть достаточной на данный момент. Вам нужно будет предоставить дополнительный код и информацию о том, как разрешать проблемы, но ответы на ваш предыдущий вопрос должны помочь вам в этом.

#! /usr/bin/env python3 

# The following is a database of problem and keywords for those problems. 
# Its format should be extended to take into account possible solutions. 
PROBLEMS = (('My phone does not turn on.', 
      {'power', 'turn', 'on', 'off'}), 
      ('My phone is freezing.', 
      {'freeze', 'freezing'}), 
      ('The screen is cracked.', 
      {'cracked', 'crack', 'broke', 'broken', 'screen'}), 
      ('I dropped my phone in water.', 
      {'water', 'drop', 'dropped'})) 


# These are possible answers accepted for yes/no style questions. 
POSITIVE = tuple(map(str.casefold, ('yes', 'true', '1'))) 
NEGATIVE = tuple(map(str.casefold, ('no', 'false', '0'))) 


def main(): 
    """Find out what problem is being experienced and provide a solution.""" 
    description = input('Please describe the problem with your phone: ') 
    words = {''.join(filter(str.isalpha, word)) 
      for word in description.lower().split()} 
    for problem, keywords in PROBLEMS: 
     if words & keywords: 
      print('This may be what you are experiencing:') 
      print(problem) 
      if get_response('Does this match your problem? '): 
       print('The solution to your problem is ...') 
       # Provide code that shows how to fix the problem. 
       break 
    else: 
     print('Sorry, but I cannot help you.') 


def get_response(query): 
    """Ask the user yes/no style questions and return the results.""" 
    while True: 
     answer = input(query).casefold() 
     if answer: 
      if any(option.startswith(answer) for option in POSITIVE): 
       return True 
      if any(option.startswith(answer) for option in NEGATIVE): 
       return False 
     print('Please provide a positive or negative answer.') 


if __name__ == '__main__': 
    main() 
+0

Как я могу дать несколько решений для каждой из проблем без всех решений, являющихся одним и тем же Кстати, спасибо так многоhhhhh :) –

+0

@KieranMcCarthy См. мой ответ на ваш вопрос [Как разделить решения для моего кода? ] (http://stackoverflow.com/questions/35516994) о том, как добавлять решения в базу данных. –

+0

нет оператора '&' в python, используйте 'and' –

1

вы ищете enum

from enum import Enum 
class Status(Enum): 
    NOT_ON = 1 
    FREEZING = 2 
    CRACKED = 3 
    WATER = 4 

Затем в if чеками, вы делаете что-то вроде этого:

if problemselect == Status.NOT_ON: 
    ... 
elif problemselect == Status.FREEZING: 
    ... 
+0

где бы я поместил это в свой код? sorry im bad –

Смежные вопросы