Python "预期一个缩进块
我有这段代码:
option == 1
while option != 0:
print("MENU")
option = input()
print("please make a selection")
print("1. count")
print("0. quit")
if option == 1:
while option != 0:
print("1. count up")
print("2. count down")
print("0. go back")
if option == 1:
print "please enter a number"
for x in range(1, x, 1):
print(x)
elif option == 2:
print "please enter a number"
for x in range(x, 1, 1):
elif option == 0:
break
else:
print("invalid command")
elif option == 0:
break
我收到一个错误提示,说是 expected an indented block
。我仔细检查了缩进,确保所有的缩进都是用4个空格来做的,但我还是找不到问题所在。
这段代码哪里出错了,我该怎么修复呢?
8 个回答
6
你的 for
循环里面没有任何内容:
elif option == 2:
print "please enter a number"
for x in range(x, 1, 1):
elif option == 0:
其实,整个 if option == 1:
这个部分的缩进都有问题。 elif option == 2:
应该和 if
语句在同一层级。
9
在Python编程中,缩进是很重要的,比如:
if a==1:
print("hey")
if a==2:
print("bye")
print("all the best")
在这个例子中,如果任意一个条件成立,就会打印出“祝一切顺利”。但是如果代码是这样写的:
if a==2:
print("bye")
print("all the best")
那么“祝一切顺利”只会在a等于2的时候才会被打印出来。
18
从 elif option == 2:
开始,你的缩进多了一次。在一个好的文本编辑器里,你可以选中这些行,然后按 Shift + Tab 来修正这个问题。
另外,在 for x in range(x, 1, 1):
之后没有任何语句。你可以插入一个缩进的 pass
,这样在这个 for
循环里就什么都不做。
还有,在第一行你写了 option == 1
。这里的 ==
是用来检查是否相等的,但你其实是想用 =
(一个等号),这个符号是用来把右边的值赋给左边的名字,也就是说:
option = 1