在python中读取用户输入可能性的快速方法

Ohg*_*nyo 0 python if-statement input python-3.x

所以说我必须阅读用户说的话,我的程序按照他们说的做。像这样的东西:

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()
Run Code Online (Sandbox Code Playgroud)

现在,假设有数百种可能性,就像在现实生活中一样。我不想为可能数百个语句做 if 语句。有没有办法让它更快并且代码更少?就像一个循环或其他东西。我已经玩了一段时间,但我想不出任何东西。

abc*_*abc 6

您可以定义一个将字符串映射到函数的字典:

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')
Run Code Online (Sandbox Code Playgroud)