Python 如何使用列表理解在开始到结束的范围内对数字进行平方运算?

Python 如何使用列表理解在开始到结束的范围内对数字进行平方运算?,python,list,list-comprehension,Python,List,List Comprehension,测验: 使用列表理解创建一个平方数列表(n*n)。该函数接收变量start和end,并返回start和end之间连续数字的平方列表。例如,正方形(2,3)应该返回[4,9] 我的代码: def squares(start, end): squares = [value ** 2 for value in range(0, 11)] return [squares] print(squares(2, 3)) # Should be [4, 9] print(squares(1,

测验:

使用列表理解创建一个平方数列表(n*n)。该函数接收变量start和end,并返回start和end之间连续数字的平方列表。例如,正方形(2,3)应该返回[4,9]

我的代码:

def squares(start, end):
    squares = [value ** 2 for value in range(0, 11)]
    return [squares]

print(squares(2, 3))  # Should be [4, 9]
print(squares(1, 5))  # Should be [1, 4, 9, 16, 25]
print(squares(0, 10))  # Should be [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
简洁的方法:

def方块(开始、结束):
返回[i**2代表范围内的i(开始、结束+1)]
给予

试试这个:

def squares(start, end):
    squares = [value ** 2 for value in range(start, end+1)]
    return squares
print(squares(2, 3)) # Should be [4, 9]
print(squares(1, 5)) # Should be [1, 4, 9, 16, 25]
print(squares(0, 10)) # Should be [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
输出:

[4, 9]
[1, 4, 9, 16, 25]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

问题到底是什么?你不应该只返回
正方形,而不是
[squares]
?事实上,我将return[squares]更改为return squares。我想知道为什么我们添加了end+1,如果你在范围(1,2)上迭代,你只得到一个值:1
def squares(start, end):
    squares = [value ** 2 for value in range(start, end+1)]
    return squares
print(squares(2, 3)) # Should be [4, 9]
print(squares(1, 5)) # Should be [1, 4, 9, 16, 25]
print(squares(0, 10)) # Should be [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[4, 9]
[1, 4, 9, 16, 25]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]