Python - 初学者问题

时间:2016-10-14 00:11:56

标签: python printing compiler-errors return

我正处于Python编程的开端并且有一些问题。 当我运行代码时,我得到了这个编译错误:

  

IndentationError:unindent与任何外部缩进级别

不匹配
  1. 我认为错误来了,因为最后一行是return。我该怎么办?
  2. 我不明白这一行。这是什么意思?
      

    打印“%d:%7d”%(i,2 ** i)

  3. 我知道,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()
    

5 个答案:

答案 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表示冒号和该值之间的空格数。