【发布时间】:2016-04-25 22:25:00
【问题描述】:
程序应在回答“您要继续(Y/N)吗?”时不断要求用户输入标题和评论。是 Y。相反,它只询问用户一次。有人可以帮我弄清楚循环不继续吗?谢谢!
#!/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()
【问题讨论】:
-
因为你在while循环中有
return -
您的
return是while循环的一部分。取消缩进。 -
return listOfReviews导致函数obtainListOfReviews()返回存储在listOfReviews中的值,以分配给main()中的变量listOfReviews。 -
如果你使用了合适的缩进级别,而不是单个空格,问题可能会更明显。
标签: python linux ubuntu while-loop pycharm