1

Bon alors comment pourrais-je faire mon code au lieu de mettre 1 à 4 Je pourrais juste mettre un mot-clé comme "Gel" ou "Froze" Comment pourrais-je mettre un mot-clé dans mon code? à l'avance :)Comment puis-je mettre des mots-clés dans mon code?

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() 

Répondre

1

Puisque vous voulez que l'utilisateur tape la description du problème du téléphone, vous voulez probablement une liste de problèmes et de mots-clés associés à ces problèmes. Le programme suivant montre comment vous pouvez organiser une telle base de données et comment la rechercher en fonction de l'entrée de l'utilisateur. Il existe des alternatives plus rapides à cette solution (comme l'indexation de la base de données), mais cette implémentation de base devrait être suffisante pour le moment. Vous devrez fournir davantage de code et d'informations sur la façon de résoudre les problèmes, mais les réponses à votre question précédente devraient vous aider à vous y prendre.

#! /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

Comment puis-je donner plusieurs solutions à chacun des problèmes sans toutes les solutions étant la même btw merci beaucoup muchhhhhh :) –

+0

@KieranMcCarthy Voir ma réponse à votre question [Comment puis-je partager les solutions pour mon code? ] (http://stackoverflow.com/questions/35516994) sur la façon d'ajouter des solutions à la base de données. –

+0

il n'y a pas d'opérateur '&' en python, utilisez 'and' –

1

vous cherchez un enum

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

ensuite dans vos if chèques, vous faites quelque chose comme ceci:

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

où est-ce que je mettrais cela dans mon code? désolé im mauvais –