-2

私は、トラップが設定されている場合と設定されていない場合にマウスがキッチンに入るときに何が起こるかをシミュレートするプログラムを作成する必要があるコードに取り組んでいます。これは、キッチンで何が起こるかを説明する複数行の入力を読み取る必要があります。 。

ラインの場合トラップを設定します。が入力されると、ネズミ捕りが餌になります。ラインマウスなら!が入力されると、プログラムはマウスに何が起こるかを出力する必要があります。トラップが設定されている場合は、Trap!を印刷します。トラップが設定されていない場合は、印刷してください。マウスがエスケープされました。他のすべての入力行については、プログラムは何も実行しないでください。ユーザーが空白行を入力するまで、ユーザーからの行を読み続ける必要があるためです。マウスがトラップに捕らえられると、リセットされない限り、トラップを使用して別のマウスを捕まえることはできません。

だから私はプログラムを作りましたが、「マウスが逃げました」では動作しません。誰かが私のコードを見て私を導いてくれますか?

a = raw_input("Enter line: ")
space = ""
trap_set = True
while a != space:
    a = raw_input("Enter line: ")
    if 'Set the trap.' in a:
        trap_set = True
        print "Trap!"
    else:
        if 'Mouse!' in a:
            trap_set = True
            print "The mouse escaped."

プログラムを次のように実行したい:

Enter line: Go to the fridge.
Enter line: Set the trap.
Enter line: Go to bed.
Enter line: Mouse!
Trap!
Enter line: 

また

Enter line: Make some dinner.
Enter line: Wash the dishes.
Enter line: Mouse!
The mouse escaped.
Enter line: Sweep the floor.
Enter line: Set the trap.
Enter line: Mouse!
Trap!
Enter line: Go to bed.
Enter line: 

そして、これは私が解決できないことです。

4

3 に答える 3

2

上記のtolo1377には少し異なるアプローチを採用しました。Set the trap' 'と' '以外の入力は気にしませんMouse

a = raw_input("Enter line: ")
space = ""
trap_set = True
while a != space:
    a = raw_input("Enter line: ")
    if 'Set the trap.' in a:
        trap_set = True
    elif 'Mouse' in a:
        if trap_set:
            print "Mouse trapped!"
            trap_set = False
        else:
            print "The mouse escaped."

あなたはあなたのプログラムのこれらの行で有用なことを何もしていませんでした:

else:
    if 'Mouse!' in a:
        trap_set = True
        print "The mouse escaped."

Mouse' !'という単語かどうかを確認しています が表示されますが、これは問題ありませんが、トラップが設定されているかどうかを確認していません。トラップが設定されていることを確認し、設定されている場合は何かを行う必要がありました。

于 2012-09-01T06:22:28.863 に答える
1

ここではいくつかのことが混同されていました。あなたが「マウス!」と呼ぶなら 最初の呼び出しでは、最初に条件を設定する必要があるため、失敗します。

a = raw_input("Enter line: ")
space = ""
# did you want to pre-set the trap to True? #
trap_set = False 
while a != space:
    if 'Set the trap.' in a:
        trap_set = True
      # no reason to print trap if just setting #
      #  print "Trap!" #
    elif 'Mouse!' in a: 
        if  trap_set == False:
            print "The mouse escaped."
        elif trap_set == True:
            print 'trap'
            trap_set = False
    a = raw_input("Enter line: ")

最後の2つの条件は、「マウス」が入力されたときに「トラップ」が設定されているかどうかを確認する場所です。次に、トラップをリセットします。

于 2012-09-01T06:37:54.717 に答える
0

これは役立つはずです:

a = raw_input("Enter line: ")
space = ""
trap_set = True
while a != space:
    if a == 'Set the trap.':
        trap_set = True
    elif a == 'Mouse!' and trap_set == False:
        print "The mouse escaped."
    elif a == 'Mouse!' and trap_set == True:
        print 'Trap!'
        trap_set = False
    a = raw_input("Enter line: ")

あなたの条件では、変数を文字列リテラルと比較する必要があります。その逆ではありません。

また、最初の入力をチェックしていなかったので、最後にもう一度入力を要求したいとします。私のソリューションでは、trap_setも変更して、トリガーされるとFalseになるようにしました。

お役に立てれば。

于 2012-09-01T06:18:43.277 に答える