首先我要说的是我完全是编程的新手。我刚刚收到了Python,它一直在用一个反复出现的错误踢我头 - “预计会有一个缩进的块” 现在,我知道还有其他一些线程解决了这个问题,我查看了很多这些问题,但是,即使检查我的缩进也没有给我更好的结果。我用4个空格替换了所有的缩进,甚至重写了几次代码。我将以此为例发布此计数器作业。
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
答案 0 :(得分:17)
从elif option == 2:
开始,您缩短了一次。在体面的文本编辑器中,您应该能够突出显示这些行并按 Shift + Tab 来解决问题。
此外,for x in range(x, 1, 1):
之后没有声明。插入缩进的pass
以在for
循环中不执行任何操作。
另外,在第一行中,您编写了option == 1
。 ==
测试相等性,但你的意思是=
(单个等号),为左名指定正确的值,即
option = 1
答案 1 :(得分:7)
在python中......意图很重要,例如:
if a==1:
print("hey")
if a==2:
print("bye")
print("all the best")
在这种情况下"一切顺利"如果两个条件中的任何一个执行,将被打印,但如果它是这样的
if a==2:
print("bye")
print("all the best")
然后"一切顺利"只有在== 2
时才会打印答案 2 :(得分:3)
您的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
语句处于同一级别。
答案 3 :(得分:3)
有几个问题:
elif option == 2:
以及随后的elif
- else
应与第二个if option == 1
对齐,而不是for
。
for x in range(x, 1, 1):
缺少一个正文。
由于“选项1(计数)”需要第二次输入,因此您需要第二次调用input()
。但是,为了理智,我建议您将结果存储在第二个变量中,而不是重新调整option
。
代码第一行的比较可能是作业。
一旦您能够运行代码,您就会发现更多问题(您需要再拨input()
次range()
次来电, for x in range(1, x, 1):
print x
来电之一需要注意等等。)
最后,请不要使用与循环变量相同的变量,也不要将其作为初始/终端条件的一部分,如:
for i in range(1, x, 1):
print i
它可能有效,但阅读起来非常混乱。为循环变量赋一个不同的名称:
{{1}}
答案 4 :(得分:1)
您的上一个for
声明缺少一个正文。
Python期望缩进块跟随for的行,或者在冒号后面有内容。
第一种风格更常见,因此它表示它希望有一些缩进代码可以遵循它。您在同一缩进级别有一个elif
。
答案 5 :(得分:1)
这个至少是错误的:
for x in range(x, 1, 1):
elif option == 0:
答案 6 :(得分:1)
Python对空格和缩进非常挑剔,比许多语言都更加挑剔。原因是,Python而不是使用花括号和分号(例如javascript或php),而是查找返回字符(按键盘上的enter / return键)而不是分号,并在其后带有一个制表符的冒号用于打开支撑。当下一段代码不缩进时,它期望它与Javascript或PHP中的右花括号相同。
来自==> https://teamtreehouse.com/community/what-is-a-indentationerror-expected-an-indented-block
答案 7 :(得分:0)
#option = 1
#while option != 0:
print ("MENU")
print("please make a selection")
print("1. count")
print("0. quit")
option = int(input("MAKE Your Selection "))
if option == 1:
print("1. count up")
print("2. count down")
print("0. go back")
option = int(input("MAKE Your Selection "))
if option == 1:
x = int(input("please enter a number "))
for x in range(1, x, 1):
print (x)
elif option == 2:
x = int(input("please enter a number "))
for x in range(x, 0, -1):
print (x)
elif option == 0:
print("hi")
else:
print("invalid command")
else:
print ("H!111")
_________________________________________________________________________
You can try this code! It works.
答案 8 :(得分:0)
循环的主体是缩进的:缩进是Python对语句进行分组的方式。在交互式提示下,您必须为每个缩进的行键入一个制表符或空格。在实践中,您将使用文本编辑器为Python准备更复杂的输入。所有体面的文本编辑器都具有自动缩进功能。以交互方式输入复合语句时,必须在其后跟随一个空行以指示完成(因为解析器无法猜测您何时键入了最后一行)。请注意,基本块中的每一行都必须缩进相同的数量。
src:##
## https://docs.python.org/3/tutorial/introduction.html#using-python-as-a-calculator