2013-02-16 52 views
0

我有一個要求電影的小應用程序。當評級超過50時,請返回觀看。如果沒有,請選擇另一部電影。雖然當我到達movieDec中的條件時,它不會回到函數的頂部來計算電影的分數。無法弄清楚這一點。在python函數中while循環的問題

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.' 

回答

2

你是不是在更新循環的stars變量。嘗試:

while stars < 50: 
    print "That's no good, pick again" 
    critic, aud, stars = getScore() 
0

在你的循環,你忽略了getScore()返回值:

getScore() 

修改成:

critic, aud, stars = getScore() 
0

這個修正碼above會調用getScore()函數的第二次(如果星< 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 
+0

代替再次打印整個事物,你可以再次調用'movieDec()'。 – 2013-02-16 15:25:13

+0

@ F3AR3DLEGEND是的。我的錯! – arcolife 2013-02-19 17:18:52