我正处于Python编程的开端并且有一些问题。 当我运行代码时,我得到了这个编译错误:
IndentationError:unindent与任何外部缩进级别
不匹配
return
。我该怎么办?打印“%d:%7d”%(i,2 ** i)
我知道,print命令的作用是什么,但其余的意思是什么?
def whileexample():
n=15;i=0; # Mit Semikolon = Variablen in einer Zeile schreiben
while i<=n:
if n>20:
print n, "ist zu groß"
break
print "%d : %7d" % (i,2**i)
i=i+1
else:
print n+1, "Zweierpotenzen berechnet."
return
whileexample()
答案 0 :(得分:1)
在Python中,行开头的空格很重要。同一逻辑级的语句必须缩进相同的数量。
在你的情况下,最后一行在行的开头有一个额外的空格字符。在第一列中确保最后一行中的w
一直到let的位置。
答案 1 :(得分:1)
@Robᵩ对whitespacing是正确的。至于你的另一个问题,%d和%7d是括号中任何内容的占位符。
&#39;&#39;在这种情况下,意味着您希望括号中显示的内容被格式化为小数。
&#39; 7&#39;表示在下一个变量之前有多少空格。
2 ** i表示2升到i(2 ^ i)。
例如:
>>> print "%d : %7d" % (5, 2**5)
5 : 32
答案 2 :(得分:0)
你的最后一段代码:whileexample() 您在第一列中添加了一个冗余空间。
答案 3 :(得分:0)
我发现的问题是,当不需要
时,最后一行是缩进的如果你使用Python 3试试这个:
def whileexample():
n=15;i=0; # Mit Semikolon = Variablen in einer Zeile schreiben
while i<=n:
if n>20:
print (n, "ist zu groß")
break
print ("%d : %7d" % (i,2**i))
i=i+1
else:
print (n+1, "Zweierpotenzen berechnet.")
return
whileexample()
如果使用python2试试这个;
def whileexample():
n=15;i=0; # Mit Semikolon = Variablen in einer Zeile schreiben
while i<=n:
if n>20:
print n, "ist zu groß"
break
print "%d : %7d" % (i,2**i)
i=i+1
else:
print n+1, "Zweierpotenzen berechnet."
return
whileexample()
这些代码之间的区别是Python 3在打印时围绕打印,因为Python 3需要这个,而Python 2则不需要。
答案 4 :(得分:0)
IndentationError:unindent与任何外部缩进级别都不匹配
缩进错误在调用函数的最后一行。最后一行的whileexample()在前面有一个额外的空间。它必须与def语句具有相同的缩进级别。
对于第二个问题, print(“%d:%7d”%(i,2 i)),引号内的内容是显示元组()内的内容的格式。这里,i是显示为%d的第一个值,代表十进制整数,而2 i是显示为%7d的值,其中7表示冒号和该值之间的空格数。