私はセレクション4に問題があるようです。main()で呼び出すことができるメインメニューに戻したいと思います。 「はい」は明らかに機能し、「はい」または「はい」以外を入力すると、メインメニューに戻ります。 "no"または "hhh"と入力するだけで、プログラムは終了し、 "Yes"/"yes"となります。まるで "はい"のように、同じ "再生のためのお礼"メッセージが表示されます。私はPythonの初心者ですので、ここで私に同行してください。Do-While、メニュー選択を正しく終了するには
while endProgram == "Yes" or "yes":
#Selection menu, user input to navigate.
selection = eval(input("Your selection: "))
#Selection 1, rules.
if selection == 1:
rpsRules()
returnMain = input("\nWhen you would like to return to the Main Menu, press Enter.")
main()
#Selection 2, begin a match against the PC, calls againstPC module with choice as an argument.
elif selection == 2:
againstPC(choice)
#Selection 3, begin a match against another player locally, calls twoPlayer module.
elif selection == 3:
twoPlayer()
#Selection 4, end program, with an "Are you sure?" catch.
elif selection == 4:
endProgram = input("\nAre you sure you want to quit? (Yes/No) ")
if endProgram == "Yes" or "yes":
print("\nThanks for playing Rock, Paper, Scissors!\nSee you next time!")
break
elif endProgram == "No" or "no":
main()
else:
main()
elif selection == 5:
creatorCredits()
'endProgram ==は「はい」または「はい」'以来、常に真であります'' yes ''、' 'yes''が 'False'でない場合、あなたのプログラマーは決して終わらないでしょう。 – user312016
選択4で呼び出されているmain()関数にコードがありますか?もしそうでなければ、それはあなたのプログラムが後で終了する理由かもしれません。endprogram == "Yes"またはendProgram == "yes"それに加えて、必ずしもあなたの質問に答えるわけではありませんが、テストする最初のIF文の後に文字列が "Yes"か "Yes"かどうかを確認するには、他の文字列を1つだけ使用できます。 ELIFとELSEの両方がmainへのコールバックを行うので、 "no"か "blah blah blah"のどちらを入力するかは重要ではありません。 –
'x ==" a "または" b "'を 'x in(" a "、" b ")'に変更して、必要な効果を持たせる必要があります。さもなければ、式は常にtrueになります。なぜなら、 '(x ==" a ")や" b "'のようなグループは明らかに真であるためです。 –