2017-04-30 4 views
-1

y/n以外の何かが入力されたときにwhileループ内でカウンタを更新しない簡単な方法を知りたいと思います。しかしループカウンタはy/n以外が入力されたときに更新されます

if yes_or_no == "y":               
    computer_winnings += 1             
elif yes_or_no == "n":              
    user_winnings += 1              
counter += 1                 
if counter > 10:                
    break  

、メインcounterユーザーがn/Y以外を入力した場合にも更新されている。ここに私のコードです。カウンタは、yまたはnが入力された場合にのみ更新する必要があります。

+0

関連する 'if' /' elif'文の中に単に 'counter + = 1'を入れてください。 – DavidG

+0

ありがとうございます!ここで私はそれを修正する方法である: 27は場合yes_or_no == "Y": 28カウンタ+ = 1 30 ELIFのyes_or_no == "N":他 31カウンタ+ = 1 33: 34プリント( "入力してくださいyまたはnのみ! ") – Julinha

答えて

1

に0から反復しましょうどのようにif/elseが1つの独立したセットであるか、カウンタは独立したセットであり、ifカウンタの状態も独立しています。したがって、同時に実行する3つの独立したステートメントがあります。

ifステートメントを使用すると、コードは1回だけ処理されるため、whileループを使用すると、エスケープステートメントを実行するまで連続してループするのが最適です。

+0

ありがとう!ここで私はそれを修正する方法である: 27は場合yes_or_no == "Y": 28カウンタ+ = 1 30 ELIFのyes_or_no == "N":他 31カウンタ+ = 1 33: 34プリント( "入力してくださいyまたはnのみ! ") – Julinha

0

のは、我々はあなたがどんな声明の下であなたを落ちるように正しくコードをインデントする必要がyまたはn

if yes_or_no in ('y', 'n'): 
    counter += 1 
    if yes_or_no == 'y': 
     computer_winnings += 1 
    else: 
     user_winnings += 1 
0

のいずれかのためにテスト中のカウンタの増分を含め9

i = 0 
while(i < 10): 
    #Ask for user input 
    foo = input() 
    #if foo value != yes_or_no value increment i 
    if foo != yes_or_no: 
     i+=1 
関連する問題