所以我有一个 Python 任务,我需要使用字典来保存菜单项,然后随机重新键入并重新排序菜单,以便我可以更改打印出来的菜单选项的顺序。这是我拥有的代码示例:
ChoiceOne = "Rekey Menu"
ChoiceTwo = "Quit"
menu = {'1':ChoiceOne, '2':ChoiceTwo,}
userChoice = input("Please Enter the Integer for Your Menu Choice: ")
while userChoice not in menu.keys():
print("Invalid Input")
userChoice = input("Please Enter the Integer for Your Menu Choice: ")
if menu[userChoice] == ChoiceOne:
menu = rekey(menu)
elif menu[userChoice] == ChoiceTwo:
quit()
上面的代码在用户选择不退出时循环,一遍又一遍地重复打印菜单。以下是我的 rekey() 函数
def rekey(menu):
rekey = {}
keylist = random.sample(range(10), 2)
for i, item in zip(keylist, menu ):
rekey[i] = menu[item]
return rekey
我的问题似乎出现在我检查菜单选项的用户输入是否有效的行中。最初,输入“1”或“2”以外的任何内容都会导致程序进入 While 循环,直到输入有效输入。然而,在重新键入菜单后,“当 userChoice 不在 menu.keys() 中时”行总是被触发,并且没有匹配的输入来继续程序。
我试图通过打印字典中的新键并检查 userChoice 是否与其中任何一个匹配来找到问题,但即使我选择了一个有效的新键,程序似乎认为我输入的任何内容都不是一个有效的密钥。
我希望我已经很好地描述了这个问题以便理解,提前感谢您的帮助!