2015-11-08 80 views
0

我已经有了一个简单的函数,它给了我一个直方图数列表,直到我选择的数字。 3在这个例子中。为什么我的“返回”功能之外?

def range_squared(n): 

    """Takes a non-negative integer value n and returns the list of the numbers, up to n-1 squared. 
    """ 
a = [] 
for i in range(n): 
    i = i ** 2  
    a.append(i) 

return a 

print (range_squared(3)) 

它仍然在循环,我想,但我不明白为什么。这是一个缩进问题吗?我试图在这里和那里放置空间,但没有运气。另外,我不知道如何摆脱“我在范围内(n)”中的“未定义名称”n'“。我应该把它改成“a”吗?

+1

年,它是一个压痕问题... –

+0

此外,你的函数可能是很短:'range_squared =拉姆达X:[POW(1,2 )我在范围内(x)]' –

+0

检查Piotr的答案。 –

回答

3

我想应该是这样的:

def range_squared(n): 

    """Takes a non-negative integer value n and returns the list of the numbers, up to n-1 squared. 
    """ 
    a = [] 
    for i in range(n): 
     i = i ** 2  
     a.append(i) 

    return a 

print (range_squared(3)) 
+0

非常感谢!我保留了'n',并没有改变它,现在它完美的工作! – tablue

+0

当您回答有关语法格式的问题时,我想添加一些关于最初编写的代码片段的小技巧。虽然文档字符串声称该函数采用非负数,但它会高兴地接受一个负数,结果将是一个空列表。 – Reti43

相关问题