2017-02-05 1 views
0

次のコードを作成しましたが、私がYに入るたびにスコアを増やしたいと思います。スコアの増加を表示して、ユーザーが推測を8回入力できるようにします。あなたの現在のコードと値がリストに含まれているかどうかを確認し、毎回スコアを10ずつ増やす変数を持たせる方法

Y = ["Treasure", "Hi", "Hey", "whoops", "OK", "Hello"] 

count=0 

while count<9: 

    I = str(input("Enter your guess")) 
    if I in Y: 
     score=+10 
     print('Your score is:',score) 
    else: 
     print("I don't understand") 
+0

問題が発生しない – Arman

+0

ループの外側でスコアを初期化するだけで、 'score = 0 'を' while'の上に置きます。また、 '+ =' not '= +'に変更する – roganjosh

+0

入力に大文字と小文字の区別があるかどうかを確認してください。 –

答えて

2

二つの主要な問題:

  1. あなたは、ループに入る前にscoreの初期値を設定しないでください。
  2. +=の代わりに=+を使用してスコアを増やしてください。

score += 10(正しい方法)がNameErrorを与えているだろうがscore = +10がエラーをスローしませんので、これは、ミスの不幸な組み合わせになります。以下の変更を参照してください。それ以降は、各ループのcountをインクリメントしないことで無限ループになります。

Y = ["Treasure", "Hi", "Hey", "whoops", "OK", "Hello"] 

count=0 
score = 0 # Set an initial score of 0, before the loop 

while count<9: 

    I = str(input("Enter your guess")) 
    if I in Y: 
     score =+ 10 # Change to += to increment the score, otherwise it's always 10 
     print('Your score is:',score) 
    else: 
     print("I don't understand") 
    count += 1 
+0

もし私がそれに対処することができるようにdownvoterがこの答えの問題を説明することができたら、私は感謝しますか? – roganjosh

0

ロジックを完了するために必要なことの1つは、最後に1ずつカウントを増やすことです。インクリメンタル演算子は+=であり、=+ではありません。もう1つのことは、可変スコアを最初に初期化する必要があることです。そこで欠落している部分についてコメントした最終コードを以下に示します。

Y = ["Treasure", "Hi", "Hey", "whoops", "OK", "Hello"] 

count = 0 
score = 0 # initialize the score 

while count<9: 

    I = str(input("Enter your guess: ")) 
    if I in Y: 
     score+=10 # increment the score 
     print('Your score is: %s' % score) 
    else: 
     print("I don't understand") 
    count += 1 # increment the count 
+0

リスト内のインデックスポイントを確認できる方法はないので、インデックスポイントを1と入力してから、トレジャーに10を足すとトレジャーと言います。 – MushyPea

+0

おそらくforループを使うべきです列挙関数。それらをチェックしてください。 –

0

あなたのwhileループは無限ループです。カウントを1つ増やすと、それは明確なループになります。また、スコア変数をゼロに初期化します。それは物事を動かすはずです。

+0

丁寧な答えですが、もしあなたがコードで意味することが望ましいとすればそれが望ましいかもしれません – nbryans

関連する問題