我被这个问题困扰了太久了,我需要一些帮助。我试图创建一个用户输入菜单决策树,它将引导用户进行适当的函数调用。我似乎无法获取正确运行的路径。我一直陷在第二个循环中。我尝试了许多不同的逻辑和条件,但没有任何效果。我创建了一些简单的代码,我认为这些代码清楚地表明了我要实现的目标...
def menu():
print("1. Selection 1")
print("2. Selection 2")
print("3. Quit")
def menu1():
print("1.Selection Function 1")
print("2.Selection Function 2")
print("3.Quit")
def menu2():
print("1.Selection Function 3")
print("2.Selection Funtion 4")
print("3.Quit")
def func_1():
print("Funtion_1")
def func_2():
print("Funtion_2")
def func_3():
print("Funtion_3")
def func_4():
print("Funtion_4")
if __name__ == '__main__':
menu()
selection=int
selection1=int
selection2=int
while (selection != 3):
selection==int(input("Please Select a Menu Option: "))
if selection == 1:
menu1()
while ((selection1 != 3)):
selection1==int(input("What Type of funtion Would You Like To execute: "))
if selection1 == 1:
func_1()
if selection1 == 2:
func_2()
if selection1 == 3:
sys.exit()
elif selection == 2:
menu2()
while ((selection2==int(input("What Other Type of Function Would You Like To execute: ")) != 3)):
if selection2 == 1:
func_3()
if selection2 == 2:
func_4()
if selection2 == 3:
sys.exit()
elif selection == 6:
sys.exit()
答案 0 :(得分:1)
看起来您需要突破while循环,而不是在内循环中执行sys.exit()
。如果您在内部循环上执行sys.exit()
,它将退出并且不会返回到外部菜单选项。
此行selection==int(input("Please Select a Menu Option: "))
应该为selection=int(input("Please Select a Menu Option: "))
。 ==
用于比较而不是分配。对于分配,我们使用=
这是修改后的代码,可以正常工作。
def menu():
print("1. Selection 1")
print("2. Selection 2")
print("3. Quit")
def menu1():
print("1.Selection Function 1")
print("2.Selection Function 2")
print("3.Quit")
def menu2():
print("1.Selection Function 3")
print("2.Selection Funtion 4")
print("3.Quit")
def func_1():
print("Funtion_1")
def func_2():
print("Funtion_2")
def func_3():
print("Funtion_3")
def func_4():
print("Funtion_4")
if __name__ == '__main__':
menu()
selection=int
selection1=int
selection2=int
while (selection != 3):
selection=int(input("Please Select a Menu Option: "))
if selection == 1:
menu1()
while ((selection1 != 3)):
selection1=int(input("What Type of funtion Would You Like To execute: "))
if selection1 == 1:
func_1()
if selection1 == 2:
func_2()
if selection1 == 3:
break
elif selection == 2:
menu2()
while (selection2 != 3):
selection2=int(input("What Other Type of Function Would You Like To execute: "))
if selection2 == 1:
func_3()
if selection2 == 2:
func_4()
if selection2 == 3:
break
elif selection == 6:
sys.exit()
答案 1 :(得分:0)
您正在将selection
与整数进行比较。如果选择具有数据类型,它将永远为假。而是执行selection == type(3)
,这不会解决您的问题。
另一件事是,while循环的第一行
selection==int(input("Please Select a Menu Option: "))
您正在比较(==
),而不是赋值(=
)。
selection=int(input("Please Select a Menu Option: "))
使用单号等于符号。
您无法比较数字,因此您将无法获得所需的结果,所有数字的循环均相同。为此,您需要将数字存储在选择变量中。 要求进一步的查询。