1

ユーザーがy/nを入力したときにプログラムを繰り返そうとしていますが、このタイプの入力でwhiletrueを使用する方法について混乱しています。以下にいくつかのコードを示します。

again = input("Would you like to play again? enter y/n:  ")
if again == "n":
    print ("Thanks for Playing!")
    quit

if again == "y":
    print ("Lets play again..")
    ????

また、ユーザーが別の文字を入力した場合にelseステートメントを実行したいのですが、2つの異なるifステートメントがあることを考えると、その方法がわかりません。

4

4 に答える 4

5

スタンドアロンの Python プログラムを作成する場合は、メイン関数を使用することをお勧めします。いくつかの単体テストを簡単に追加したり、他のモジュールから関数やクラスを使用したり (インポートした場合) などを行うことができます。

他の条件が満たされていない場合に、ある条件が満たされているかどうかを確認し、どの条件が真であるかに応じていくつかのアクションを実行する必要がある場合は、if…elif…else ステートメントを使用できます。

また、この場合、プログラムに input() 関数を使用できないことに注意してください。ここで本当に使いたいのは raw_input です。これら 2 つの関数の違いは、raw_input() は常に文字列を返し、input() は、input() ではなくコードに記述されているかのようにユーザーの入力を評価することです。したがって、ユーザーが "y" (引用符を含む) を入力すると、文字列オブジェクトが変数の値として格納されます。しかし、ユーザーが (引用符なしで) y を入力すると、input() はこれを評価しようとし、y が定義されていない場合はエラーがスローされます。

このテーマの詳細については、こちらをご覧ください。

def main():
    while True:
        again = raw_input("Would you like to play again? Enter y/n: ")

        if again == "n":
            print ("Thanks for Playing!")
            return
        elif again == "y":
            print ("Lets play again..")
        else:
            print ("You should enter either \"y\" or \"n\".")

if __name__ == "__main__":
    main()
于 2012-09-24T00:13:34.280 に答える
1
def play_game():
    if int(raw_input("Guess a number:"))!= 5:
          print "You Lose!"
    else:
          print "You Win!"

def play_again():
    return raw_input("Play Again?").lower() == "y"

while True:
    play_game()
    if not play_again(): break

print "OK Goodbye..."
于 2012-09-24T00:20:23.630 に答える
0

コードが機能するようになり、elseステートメントに移動するたびにループし、基本的にifステートメントにループバックします..

Pythonを学び始めたばかりで、とても気に入っています。これが私の簡単なコードです。

print 'Welcome to "Guess my number"'

def main():
    while True:
        number = raw_input('Please Enter a number between 1 and 10: ')
        if number == '5':
            print 'You Got It!! It\'s number ' + number
            return
        else:
            print 'Please try again!'
main()
raw_input("\nPress enter")
于 2014-10-04T02:35:12.560 に答える
0

次のようなことができます。

再生という変数にブール値を代入し、それをループ条件として使用します。

だからあなたは持っているでしょう。

playing = True
while playing:
    choice = input("would you like to play again? y/n: ")
    if choice == "n":
        print "Thanks for playing"
        playing = False
    else:
        print "play again.. etc..."

playing変数を false に設定すると、ループが終了します。

于 2012-09-24T00:13:39.337 に答える