为什么我会收到此 python 程序的中断外部循环错误,但不会收到类似程序的错误?
Why am I getting a break outside loop error for this python program but not for a similar program?
我是编码和 Stack Exchange 的新手。请原谅格式问题方面的任何错误(欢迎更正)。我的问题是这样的。我正在 "Python Crash Course" 做练习 7-4。我有两个在格式和输出方面非常相似的程序。 city_visits 是作者给出的示例,并没有导致 "break outside loop" 错误。但是 Pizza_toppings 会导致 "break outside loop" 错误。任何人都可以解释导致一个错误而不是另一个错误的区别是什么?谢谢您的帮助!
Pizza_toppings.py
prompt = "\nWelcome to Pizza by the sea!"
prompt += "\nYou can add as manty toppings as you like! Just tell us!"
prompt += "\nWhen you are finished type 'quit'. Tell us what you want: "
while True:
topping = raw_input(prompt)
if topping == "quit":
break
else:
print "Adding " + topping + "."
city_visits
prompt = "\nPlease enter the name of a city you have visited:"
prompt += "\n(Enter 'quit' when you are finished.)"
while True:
city = raw_input(prompt)
if city == 'quit':
break
else:
print "I'd love to go to " + city.title() + "!"
Python 中的缩进很严格。这个:
if topping == "quit":
break
应该是这样的:
if topping == "quit":
break
非常微妙,但在 Python 中非常重要。
在 Python 中,循环和 if/else
块的范围完全由缩进决定,所以如果你的缩进搞砸了——就像你的代码中的情况一样——如果在意想不到的上下文中使用某些元素,如 break
,它将产生奇怪的结果,或者根本无法编译。
你的代码,在这两个例子中,都应该像这样缩进:
while True:
city = raw_input(prompt)
if city == 'quit':
break
else:
print "I'd love to go to " + city.title() + "!"
请注意 city
、if
和 else
是如何 (a) 比 while
进一步缩进的,以及 (b) 缩进了完全相同的量。 如何 缩进并不太重要,但良好的习惯决定了 4 spaces per level of indentation (although some prefer 1 tab)。另外,切勿混用制表符和空格,否则您的缩进可能在您的编辑器中看起来正确,但实际上完全是一团糟。
我是编码和 Stack Exchange 的新手。请原谅格式问题方面的任何错误(欢迎更正)。我的问题是这样的。我正在 "Python Crash Course" 做练习 7-4。我有两个在格式和输出方面非常相似的程序。 city_visits 是作者给出的示例,并没有导致 "break outside loop" 错误。但是 Pizza_toppings 会导致 "break outside loop" 错误。任何人都可以解释导致一个错误而不是另一个错误的区别是什么?谢谢您的帮助!
Pizza_toppings.py
prompt = "\nWelcome to Pizza by the sea!"
prompt += "\nYou can add as manty toppings as you like! Just tell us!"
prompt += "\nWhen you are finished type 'quit'. Tell us what you want: "
while True:
topping = raw_input(prompt)
if topping == "quit":
break
else:
print "Adding " + topping + "."
city_visits
prompt = "\nPlease enter the name of a city you have visited:"
prompt += "\n(Enter 'quit' when you are finished.)"
while True:
city = raw_input(prompt)
if city == 'quit':
break
else:
print "I'd love to go to " + city.title() + "!"
Python 中的缩进很严格。这个:
if topping == "quit":
break
应该是这样的:
if topping == "quit":
break
非常微妙,但在 Python 中非常重要。
在 Python 中,循环和 if/else
块的范围完全由缩进决定,所以如果你的缩进搞砸了——就像你的代码中的情况一样——如果在意想不到的上下文中使用某些元素,如 break
,它将产生奇怪的结果,或者根本无法编译。
你的代码,在这两个例子中,都应该像这样缩进:
while True:
city = raw_input(prompt)
if city == 'quit':
break
else:
print "I'd love to go to " + city.title() + "!"
请注意 city
、if
和 else
是如何 (a) 比 while
进一步缩进的,以及 (b) 缩进了完全相同的量。 如何 缩进并不太重要,但良好的习惯决定了 4 spaces per level of indentation (although some prefer 1 tab)。另外,切勿混用制表符和空格,否则您的缩进可能在您的编辑器中看起来正确,但实际上完全是一团糟。