根据用户输入运行代码(Python3,Pandas)

时间:2014-10-09 21:55:50

标签: python-3.x pandas

我的代码在开头需要用户输入:

var = input("Do you want A (Type: A) or an B (Type: B)?")

根据此输入,它将运行一组特定的代码。我知道如何通过以下方式实现这一目标:

if var = 'A':
    run code...

elif: var = 'B':
    run other code...

else:
    print ('Incorrect Input')

我的问题是我实际上将两组不同且非常长的代码合并为一组。上述方法的问题是由于Python的空白约束"如果"声明 - 我不想手动缩进一千行代码。是否有更好的方法来实现基于用户输入运行代码的相同概念,而这些用户输入不会要求我缩进所有内容?

1 个答案:

答案 0 :(得分:1)

您可以根据输入运行功能。

def func_a():
    #Do stuff here...
    return

def func_b():
    #Do stuff here...
    return

type = input("A/B: ").lower()

if type == "a":
    func_a()
elif type == "b":
    func_b()
else:
    print("Invalid option.")

另一种方法是使用os.system()调用脚本。

if type == "a":
    os.system("python script_a.py")
elif type == "b":
    os.system("python script_b.py")
else:
    print("Invalid option.")

而且,如果我正确理解你的问题,这里有一种基于用户输入使用字典运行函数的方法。这样你就不需要输入一百个if-else语句。

types = {"A": func_a,
         "B": func_b}

choice = input("A/B: ")

types[choice]()