使用循环来生成if语句

时间:2017-03-13 01:34:37

标签: python-3.x loops if-statement

在我正在制作的项目中,有一个列表打印出来,如此

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语句的循环。

感谢您的帮助!

1 个答案:

答案 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()