Python意外缩进?

时间:2014-10-15 17:52:34

标签: python indentation

昨天,我在一些编程任务中尝试了一些涉及python的MOOC。我试图解决一个简单的问题,但我不明白为什么我仍然会收到这样的错误:

    In [32]: import A1Part3
  File "A1Part3.py", line 26
    t = np.arrange(x.size/N)
    ^
IndentationError: unexpected indent

我不明白为什么,我正在阅读关于python缩进的内容,并且据我所知,如果某个语句在上面的块中缩进,它应该考虑该函数的一部分。 我不知道我做错了什么或我误解了什么。

    """
A1-Part-3: Python array indexing

Write a function that given a numpy array x, returns every Nth element in x, starting from the 
first element.  

The input arguments to this function are a numpy array x and a positive integer N such that N < number of 
elements in x. The output of this function should be a numpy array.

If you run your code with x = np.arange(10) and N = 2, the function should return the following output: 
[0, 2, 4, 6, 8].
"""

import numpy as np


def hopSamples(x,N):
    """
    Inputs:
        x: input numpy array
        N: a positive integer, (indicating hop size)
    Output:
        A numpy array containing every Nth element in x, starting from the first element in x.
    """
    ## Your code here   
    t = np.arrange(x.size/N)
    cont = 0
    i = 0
    while cont<x.size :
          cont+=N
          t[i]=x[cont]
          i=i+1
    return t

2 个答案:

答案 0 :(得分:1)

该行上有制表符,Python将制表符扩展为8个空格。 前面的行只使用空格,因此它的缩进率为4个字符:

>>> '''\
...     ## Your code here       
...     t = np.arrange(x.size/N)
... '''
'    ## Your code here\t\n\tt = np.arrange(x.size/N)\n'
>>> #                 ^^  ^^

\t转义序列代表那里的标签。由于选项卡扩展为8个空格,因此您可以有效地缩进该行,而不是前面的行。

您不应在新的Python代码中使用制表符。仅使用空格。将编辑器配置为使用空格进行缩进(即使按下Tab键,大多数编辑器也会使用空格)。

通过python -tt scriptname.py运行您的代码,让Python告诉您有关混合制表符和空格的任何其他位置,并对其进行更正。

答案 1 :(得分:0)

在我的电脑中,除第一行的缩进外,您的代码工作正常: 但即使您的代码出现任何缩进错误,我建议您将tab替换为4个空格