2017-12-21 3 views
0

これは私が実行しようとしていますコードです...なぜwhileループは終了しないのですか?

scoreCount = int(input("How many scores do you want to record?")) 
recordedValues = 0 
averageScore = totalScore/scoreCount 
highestScore = 0 
totalScore = 0 

私は、コードの機能が停止したと考えているところです...私は終了するwhileループを取得できますか

while recordedValues <= scoreCount: 
    score = int(input("\n\nEnter Score,:") 
    if type(score)== int: 
       totalScore == totalScore + score 
       recordedValues == recordedValues + 1 
    if score >= highestScore: 
       highestScore = score 
    else: 
       print("\n\nThe scores are not integer values") 
       quit() 

と平均得点/最高得点/記録値が表示されていますか?

編集:ありがとう、私は問題を解決しました。

+5

'recordedValues == recordedValues + 1'は' recordedValues'を変更しません。あなたは '='ではなく '='を意味します。 – khelwood

+1

あなたはすでにint型への入力をキャストしています。なぜ 'type(score)== int'ならチェックする必要がありますか? – Mangohero1

+0

また、whileループ内の "else"ブロックは、最初の "if"ブロックの後にある必要があります。しかし、ええ、あなたはすでにintにキャストしているので、なぜあなたはintをチェックしていますか? – Prem

答えて

2

あなたは代わりにwhileループの内側=の==置く:

if type(score)== int: 
    totalScore == totalScore + score 
    recordedValues == recordedValues + 1 

ので 'recordedValues' と 'totalScoreは' 変わっていません。

編集: 'khelwood'はすでにコメントに記載されています。

+1

はい、これはまさにコメントに記載されています。ここにあなたが追加している新しい情報は何ですか? –

+0

申し訳ありませんが、私は同時に書いています。 – Matan

+0

私の意見ではコメントは答えを与えるべきではありません。そうでない場合は、すべてのユーザーがすべてのコメントを分析して回答を決定する必要があります – snap

1

あなたのコードでかなりの数の問題があります:あなたがtotalScoretotalScore/scoreCountaverageScoreを割り当てようとも定義されている、あなたは時々代入演算子として==平等チェッカーを使用して、あなたはscoreはそれがあるにもかかわらず、intになっていることを確認し既に変換されており、whileループの条件に問題があります。ここで何ができるかです:

は、例外処理と反復型テストを交換して、違法な変数の代入削除:最高のスコアのために>

try: 
    scoreCount = int(input("How many scores do you want to record?")) 
except ValueError: 
    print("\n\nYou need to enter an integer...") 
    quit() 
recordedValues = 0 
highestScore = 0 
totalScore = 0 

変更>=を、変数の割り当てを修正し、不要なタイプを置き換えます例外処理でチェックします。

while recordedValues <= scoreCount: 
    try: 
     score = int(input("\n\nEnter Score: ")) 
    except ValueError: 
     print('Scores must be numbers.') 
     quit() 
    totalScore += score 
    recordedValues += 1 
    if score > highestScore: 
     highestScore = score 

print("\n\nThe amount of values recorded:", recordedValues) 
print("\n\nThe average score:", totalScore/scoreCount) 
print("\n\nThe highest score:", highestScore) 
関連する問題