Ich mache derzeit ein interaktives System mit Python, das verstehen und antworten kann. Daher gibt es viele Bedingungen für die Analyse und Verarbeitung der Maschine. Für z. nehmen Sie den folgenden Code (nur als Referenz):Gibt es eine Möglichkeit, zu viele andere Bedingungen zu entfernen?
if ('goodbye') in message:
rand = ['Goodbye Sir', 'Jarvis powering off in 3, 2, 1, 0']
speekmodule.speek(rand,n,mixer)
break
if ('hello') in message or ('hi') in message:
rand = ['Wellcome to Jarvis virtual intelligence project. At your service sir.']
speekmodule.speek(rand,n,mixer)
if ('thanks') in message or ('tanks') in message or ('thank you') in message:
rand = ['You are wellcome', 'no problem']
speekmodule.speek(rand,n,mixer)
if message == ('jarvis'):
rand = ['Yes Sir?', 'What can I doo for you sir?']
speekmodule.speek(rand,n,mixer)
if ('how are you') in message or ('and you') in message or ('are you okay') in message:
rand = ['Fine thank you']
speekmodule.speek(rand,n,mixer)
if ('*') in message:
rand = ['Be polite please']
speekmodule.speek(rand,n,mixer)
if ('your name') in message:
rand = ['My name is Jarvis, at your service sir']
speekmodule.speek(rand,n,mixer)
So ist es eine Möglichkeit, in der ich alle diese, wenn sonst Bedingungen ersetzen ?? Weil es viel mehr Bedingungen geben wird und die Ausführung langsamer wird.
Der erste Schritt besteht darin, unnötige Parens zu entfernen, d. H. Einfach 'if 'hallo' zu schreiben. – skovorodkin
Hier ist eine Lösung mit Wörterbüchern: http://stackoverflow.com/questions/60208/replacements-for-switch-statement-in-python – imant
Ja, Sie können ein Wörterbuch wie vorgeschlagen verwenden, um eine Art von "switch ... case ... ". Aber mit RegEx, um das "Wort in Nachricht" zu implementieren. Es reduziert jedoch nicht die Komplexität Ihres Algorithmus: Sie müssen alle Fälle überprüfen. –