2017-05-23 1 views
0
def individual_question_scores_pretest(): 
    question_number = 1 
    for name in students: 
    print("Now we will input the scores for %s: " % name) 

    while question_number <= number_of_questions: 
     questionScore = float(raw_input("Score for question # %d: " % 
      question_number)) 
     question_scores_preTest[name] = questionScore 
     question_number = question_number + 1 
    return question_scores_pretest 

私はwhileループがnumber_of_questionsで定義された一連の質問番号を通過しようとしています。現在、number_of_questionsは10に設定されています。したがって、質問1、質問2などのスコアを10まで入力したいと思います。ただし、11,12,13,14 ...は無限になりますループ。私のインデントが間違っているのですか、それとも私がフローのために持っている注文ですか? ありがとう!ループカウンタが停止しないうちに

+2

ここで 'number_of_questions'は定義されていますか?そのタイプは何ですか? –

+0

btw 'question_scores_preTest'という名前が一貫しない – Uriel

+0

number_of_questionsがグローバル変数としてこれより前に定義されています: – George

答えて

1

あなたが値をインクリメントしているので、「無限ループは、」のみ発生する可能性があります:number_of_questionsが非常に高い

  • 場合
  • あなたのpython 2を使用している場合、あなたはなしraw_inputを通じてnumber_of_questionsを得ましたは(raw_input値が何であれ、文字列を返す)intに変換

デモ(パイソン2):

>>> 12 < "10" 
True 

のpython 3であなたが "unorderableタイプ:INT()< STR()" を得ることに注意して例外ではなく(それはあなたのエラーを見つけるために役立っているだろうという、最高のためです)

をsoからあなたの最後のコメントはquickfixです:

number_of_questions = int(raw_input("Please input the number of questions on the assessment: ")) 
+0

ありがとうございました!私はそれを整数に変換するのを忘れました - 私は間違った場所で問題を探していました。再度、感謝します! – George

+0

そして、私は矛盾したタイプミスを修正します:) – George

+0

Nevermind - Python 2.7.10。ありがとうございました – George

関連する問題