【问题标题】:Run Code based on User Input (Python3,Pandas)根据用户输入运行代码(Python3、Pandas)
【发布时间】:2014-10-09 21:55:50
【问题描述】:

我有一个代码需要用户在开头输入:

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”语句的空白约束——我不想手动缩进一千行代码。有没有更好的方法来实现基于用户输入运行代码的相同概念,而不需要我缩进所有内容?

【问题讨论】:

  • 不知道为什么所有的负面投票...
  • 我怀疑您的尝试并不明显,请参阅stackoverflow.com/help/how-to-ask。我喜欢提供的答案(这就是我评论“调用函数”时的意思)。

标签: python-3.x pandas


【解决方案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]()

【讨论】:

    猜你喜欢
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多