0

私は映画を要求する小さなアプリを持っています。評価が50を超えたら、戻って見てください。そうでない場合は、別の映画を選択してください。movieDecの条件に到達しても、関数の先頭に戻って映画のスコアを計算することはできません。これを理解することはできません。

def getScore():
   choose = raw_input("pick a movie ")
   rt = RT()
   info = rt.search(choose)
   rating1 = info[0].get('ratings').get('critics_score')
   rating2 = info[0].get('ratings').get('audience_score')
   stars = (rating1 + rating2) / 2
   return rating1, rating2, stars


def movieDec():
   critic, aud, stars = getScore()
   print 'Critics gave it a %s' %critic
   print 'Audiences gave it a %s' %aud
   print 'The average rating is %s' %stars
   while stars < 50:
       print "That's no good, pick again"
       getScore()
    print 'Good choice.'
4

3 に答える 3

2

starsループ内で変数を更新していません。試す:

while stars < 50:
   print "That's no good, pick again"
   critic, aud, stars = getScore()
于 2013-02-16T14:22:26.840 に答える
0

あなたのループでは、次の戻り値を無視していますgetScore():

   getScore()

それを次のように変更します。

   critic, aud, stars = getScore()
于 2013-02-16T14:21:49.017 に答える
0

上記の修正されたコードは、getScore() 関数を 2 回呼び出しますが (星が 50 未満の場合)、ループが次のようになるまでスコアは表示されません。

while stars < 50:
   print "That's no good, pick again"
   critic, aud, stars = getScore()
   print 'Critics gave it a %s' %critic
   print 'Audiences gave it a %s' %aud
   print 'The average rating is %s' %stars
于 2013-02-16T14:31:51.890 に答える