3

Pythonの学習を始めているので、この質問が非常に明白に思える場合はご容赦ください。プログラムがリストメソッドを使用して、コンピューターゲームのユーザーの最高スコアのリストを作成および維持するハイスコアプログラムを作成しようとしています。ただし、ユーザー入力に応じてコードを配置しているにもかかわらず、while ループが実行され続け、ユーザー入力が無視されます。以下のコードを見てください。私が間違っていることについての答えが欲しいです。前もって感謝します。

scores =[]
choice = None

while choice != "0":
    print """"High Scores Keeper
    0 - Exit
    1 -Show Scores
    2 - Add A score
    3- Delete a score.
    4- Sort Scores"""
    choice = raw_input("Choice:")
    print 


    if choice == "0":
        print "Good Bye"

    elif choice == "1":
        print "High Scores"
        for score in scores:
            print score

    elif choice == "2":
        score = int(raw_input("What score did you get?:  "))
        scores.append(score) 

ループを実行して、たとえば、ハイスコアを出力するのではなく 1 を選択すると、ループが再び繰り返され、2 つでも同じになります。助けてください。

4

2 に答える 2

1

ループが続くようにコーディングし、choice != "0"の場合にのみループから抜け出しますchoice == "0"。ループから抜け出したい場合は、"1"それに対応するループ条件が必要です。

while choice != "0" and chioce != "1" and choice != "2" and ...

または、より簡潔な方法で記述できます。

while 0 <= int(choice) and int(choice) <= 4:

while choice not in ["0", "1", "2", "3", "4", "5"]:

#or something like that.
于 2013-11-09T23:44:56.003 に答える