Итак, скажем, я должен читать то, что говорит пользователь, и моя программа делает то, что он говорит. Что-то вроде этого:
userinstructions = input('What action would you like me to do?')
if userinstructions == 'walk':
walk()
elif userinstructions == 'sleep':
sleep()
elif userinstructions == 'eat':
eat()
elif userinstructions == 'talk':
talk()
Теперь предположим, что есть сотни возможностей, как и в реальной жизни. Я бы не хотел делать операторы if, возможно, для сотен операторов. Есть ли способ сделать это быстрее и иметь меньше кода? Например, петля или что-то в этом роде. Я немного поигрался с этим, но ничего не могу придумать.
Сделайте словарь - {'response':action,...}
- для каждого возможного ответа, который вы можете придумать.
Вы можете определить словарь, который отображает строки в функции:
actions = {
'walk': walk,
'eat': eat,
}
userinstructions = input('What action would you like me to do?')
if userinstructions in actions:
actions[userinstructions]()
else:
print('Invalid action')
Некоторые идеи здесь: stackoverflow.com/questions/11479816/…