2017-12-15 1 views
-1

私は非常に反復的なようないくつかのコードを持ち、変数名の違いにもかかわらずループに入れて効率を改善する方法を知りました。ループで効率を向上させるPython

if int(self.answer1) == int(self.studentAnswer1): 
     self.score = int(self.score) + 1 
     self.questionsAsked = self.questionsAsked + 1 
     self.updateProgressBar() 

    else: 
     self.display = "Sorry the correct answer was " + str(self.answer1) 
     self.wrongAnswer() 

    self.correctAnswer = int(self.answer1) 
    self.input = int(self.studentAnswer1) 
    self.type = str(self.a) + " multiplied by 1000, to convert KG to Grams" 
    self.insertAnswer() 


    if int(self.answer2) == int(self.studentAnswer2): 
     self.score = int(self.score) + 1 
     self.questionsAsked = self.questionsAsked + 1 
     self.updateProgressBar() 

    else: 
     self.display = "Sorry the correct answer was " + str(self.answer2) 
     self.wrongAnswer() 

    self.correctAnswer = int(self.answer2) 
    self.input = int(self.studentAnswer2) 
    self.type = str(self.a) + " divide by 1000, convert Grams to KG" 
    self.insertAnswer() 

これは現在、期待どおりの作業です。

+0

ループが表示されません。 –

+0

@IgnacioVergaraKausel彼は冗長性を取り除くためにループに入れる方法を尋ねています – chrisz

答えて

0

これを試してください。

answer = [answer1, answer2]; 
student_answer= [studentAnswer1, studentAnswer2]; 

for i in range (len(answer)){ 
     if int(self.answer[i]) == int(self.student_answer[i]): 
      self.score = int(self.score) + 1 
      self.questionsAsked = self.questionsAsked + 1 
      self.updateProgressBar() 

     else: 
      self.display = "Sorry the correct answer was " + str(self.answer[i]) 
      self.wrongAnswer() 

     self.correctAnswer = int(self.answer[i]) 
     self.input = int(self.student_answer[i]) 
     self.type = str(self.a) + " multiplied by 1000, to convert KG to Grams" 
     self.insertAnswer() 
    } 
1

指数を反復処理し、リストから描き、どちらも他の回答の代替は、zipを使用しています。例えば

answers = [whatever] 
student_answers = [whatever] 
for answer, student_answer in zip(answers, student_answers): 
    ... 

これは、それが見えます正確にどのように動作します。 zip([1, 2, 3], [4, 5, 6]) == [(1, 4), (2, 5), (3, 6)]

関連する問題