そのため、メニューの項目を保持するために辞書を使用する必要がある 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 ループに入ります。ただし、メニューのキーを変更した後、「while userChoice not in menu.keys()」という行が常にトリガーされ、プログラムを続行するための入力が一致しません。
辞書に新しいキーを出力し、userChoice がそれらのいずれかに一致するかどうかを確認して問題を見つけようとしましたが、有効な新しいキーを選択しても、プログラムは入力したものは何もないと考えているようです。有効なキー。
理解できるように問題を十分に説明したことを願っています。事前に助けてくれてありがとう!!