Python循环不会继续

问题描述:

程序应该不断询问用户输入标题并查看“你想继续(是/否)”的答案吗?是Y.相反,它只询问用户一次。有人可以帮我弄清楚,而循环不会继续。谢谢!Python循环不会继续

#!/usr/bin/env python 

def main(): 

listOfReviews = obtainListOfReviews() 
displayResults(listOfReviews) 

def obtainListOfReviews(): 
listOfReviews = [] 
carryOn ='Y' 
while carryOn =='Y': 
    title = raw_input("Enter title:") 
    review = int(input("Enter review:")) 

    st = MovieReview(title, review) 
    listOfReviews.append(st) 
    carryOn = raw_input("Do you want to continue?(Y/N)? ") 
    carryOn = carryOn.upper() 
    return listOfReviews 

def displayResults(listOfReviews): 
    for r in listOfReviews: 
     print(r) 

class MovieReview: 
def __init__(self, title = " ", review = 0): 
    self._title = title 
    self._review = review 
def setTitle(self, title): 
    self._title = title 
def setReview(self, review): 
    self._review = review 
def getTitle(self): 
    return self._title 
def getReview(self): 
    return self._review 
def __str__(self): 
    return ("Title: " + str(self._title) + " \nreview: " + str(self._review)) 
main() 
+0

因为你'return' while循环 – JCVanHamme

+0

你'return'是'while'环路的一部分。 Unindent它。 – Matthias

+0

'return listOfReviews'使函数'obtainListOfReviews()'返回存储在'listOfReviews'中的值,并将其分配给'main()'中的变量'listOfReviews'。 –

你有一个错误的缩进你行 “回归listOfReviews”:

def obtainListOfReviews(): 
listOfReviews = [] 
carryOn ='Y' 
while carryOn =='Y': 
    title = raw_input("Enter title:") 
    review = int(input("Enter review:")) 

    st = MovieReview(title, review) 
    listOfReviews.append(st) 
    carryOn = raw_input("Do you want to continue?(Y/N)? ") 
    carryOn = carryOn.upper() 

# Correct indentation 
return listOfReviews