В настоящее время я создаю интерактивную систему, использующую python, способную понимать и отвечать. Следовательно, для этого существует множество условий для анализа и обработки машины. Напр. принять следующий код (только для справки):Есть ли способ удалить слишком много, если еще условия?
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)
Итак, есть ли способ, в котором я могу заменить все эти If Else условия ?? Потому что будет намного больше условий, и это сделает выполнение медленнее.
Первым шагом является удаление ненужных парсеров, т. Е. Просто напишите 'if 'hello''. – skovorodkin
Вот решение, использующее словари: http://stackoverflow.com/questions/60208/replacements-for-switch-statement-in-python – imant
Да, вы можете использовать словарь, как предлагается реализовать своего рода «переключатель ... случай ... ». Но с RegEx, чтобы реализовать «слово в сообщении». Однако это не уменьшит сложность вашего алгоритма: вы должны проверить все случаи. –