简体   繁体   English

Python while循环不会继续

[英]Python while loop does not continue

The program should keep asking the user to enter title and review while the answer for "Do you want to continue(Y/N)?" 该程序应继续要求用户输入标题并进行评论,同时回答“是否要继续(是/否)?”。 is Y. Instead it ask the user only once. 是Y。而是只询问用户一次。 Can someone help me figure out while the loop does not continue . 有人可以帮我弄清楚循环是否继续。 Thanks! 谢谢!

#!/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()

You have a wrong indentation for you line "return listOfReviews" : 您在“ return 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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM