在我正在制作的项目中,有一个列表打印出来,如此
1. A
2. B
3. C
4. D
等等,一直持续到23个。我让用户输入基于的选择数字,然后从那里我的程序运行其他代码,如此
entry = str(input())
if entry == '1':
do_something
if entry == '2':
do_something_else
if entry == '3':
do_another_something
这一直持续到第23次选择。我意识到我可以输入每个if
语句,然后强行说道,最后if语句,但这感觉非常重复,我想知道是否有一个简化的解决方案来做这样的事情(虽然我知道这是不对的,只是一个例子)
for number in range(23):
if entry == number:
do_something
也许更好的解释是,我想创建一个为我创建if语句的循环。
感谢您的帮助!
答案 0 :(得分:2)
您仍然需要描述从输入到行为的映射,您可以将其作为字典来执行。假设do_something...
是不带args的函数:
dispatch = {
'1': do_something,
'2': do_something_else,
'3': do_another_something,
...
}
entry = input()
dispatch[entry]()
如果这些函数被称为do_something_<input>
,那么你可以做一些危险的事情而不用如下的映射:
fn = eval("do_something_{}".format(input()))
fn()