所以我正在python中制作一个简单的程序(我对它很陌生(,它是一个有4个选项的简单菜单。
其中一个选项用于显示文本文件中的用户,然后它会询问用户是否要返回主菜单。如果他们输入是,我的意图是让用户返回到主菜单并从那里继续,如果不是,那么它将被传递。
问题是,当用户输入"Y"
返回主菜单时,它会将用户带到那里,但相同的";返回";输入的问题将在循环中不断被问到。
我该怎么打破这个?我正试图使得当用户选择";Y";对于"返回",它会将用户带到主菜单,并询问用户要再次选择哪个选项。
旁注:如果可能的话,如果有人能告诉我如何添加下拉列表,那将意义重大,这样,我的程序读取用户名的文本文件,然后将每个用户显示为程序中的下拉列表。
代码:
elif option == 4:
print("n" + "Displaying users... ")
userlist = open('userlist.txt', 'r')
f = userlist.readlines()
newList = []
for line in f:
if line[-1] == 'n':
newList.append(line[:-1])
else:
newList.append(line)
print(newList)
while True:
goback = input("Go back? (Y/N): ")
if goback == "Y":
menu()
elif goback == "N":
pass
else:
print ("Invalid option")
我正在努力解决的领域是:
goback = input("Go back? (Y/N): ")
if goback == "Y":
menu()
因为我希望它能让我完全回到主菜单,而不是一遍又一遍地问同样的问题。
我试着让它在没有输入的情况下显示主菜单,但我真的不太确定如何做到这一点。我添加了menu()
,让用户回到主菜单,在那里他们可以再次选择一个选项。我曾尝试用提示问题option = int(input("Enter your option: "))
跟进menu()
,但没有成功,因为当我输入一个选项时,它又回到了同一个"go back?"
问题。
解决方案已经存在于注释中,因此,代码:
while True:
goback = input("Go back? (Y/N): ")
if goback == "Y":
menu()
break
elif goback == "N":
pass # Write code according to the action
else:
print ("Invalid option")
输出:
Displaying users...
Go back? (Y/N):
N
Go back? (Y/N):
N
Go back? (Y/N):
N
Go back? (Y/N):
Y
到此结束,因为它只是一个片段