我的代码在开头需要用户输入:
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的空白约束"如果"声明 - 我不想手动缩进一千行代码。是否有更好的方法来实现基于用户输入运行代码的相同概念,而这些用户输入不会要求我缩进所有内容?
答案 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]()