2014-10-09 66 views
-3

我有需要在一开始的用户输入一个代码:运行代码(Python3,熊猫)

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“if”语句的空白限制 - 我不想手动缩进一千行代码。有没有更好的方式来实现这种基于用户输入的代码运行相同的概念,而不需要我缩进一切?

+0

调用函数? – 2014-10-09 22:37:05

+0

不知道为什么所有负面downvotes ... – user3682157 2014-10-15 17:20:11

+1

我怀疑这是不明显的,你已经尝试过,请参阅http://stackoverflow.com/help/how-to-ask。我喜欢所提供的答案(当我评论“调用函数”时,这就是我的意思)。 – 2014-10-15 17:22:29

回答

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]()