我需要一些关于如何编写 Python 程序的建议,它会以列表格式为您提供前 n 个完美正方形的列表。输出应如下所示:
多少个正方形?:5 [1、4、9、16、25]
这是我到目前为止所拥有的:
n = int(raw_input("How many squares? "))
现在对于下一部分,我需要创建前 n 个正方形的列表。关于如何做的任何建议?感谢您的时间和建议。
我需要一些关于如何编写 Python 程序的建议,它会以列表格式为您提供前 n 个完美正方形的列表。输出应如下所示:
多少个正方形?:5 [1、4、9、16、25]
这是我到目前为止所拥有的:
n = int(raw_input("How many squares? "))
现在对于下一部分,我需要创建前 n 个正方形的列表。关于如何做的任何建议?感谢您的时间和建议。
使用列表推导:
[ a*a for a in xrange(1, n + 1) ]
现在对于下一部分,我需要开始创建前 n 个正方形的列表。关于如何做的任何建议?感谢您的时间和建议。
这是你可以得到帮助的事情。对于另一部分,发布您的算法。
使用 range 生成列表:
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
使用列表推导获取 x^2 的列表
>>> [x**2 for x in range(10)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>>
Novikov提供了一个更优雅的答案
n = int(raw_input("How many squares? "))
map((2).__rpow__, range(1, n+1))
或者
from operator import mul
n = int(raw_input("How many squares? "))
map(mul, *[range(1, n+1)]*2)
有人提到了生成器——这就是你在这种情况下使用它们的方式:
def sq(n):
i=0
while i<n:
i+=1
yield i*i
if __name__=="__main__":
n = int(raw_input("How many squares? "))
print list(sq(n))
代码:
list_squares=[]
for a in xrange(1, n+1):
list_squares.append(a*a)
print list_squares
其中 n 是用户输入的他想要的正方形数量。
如果n=5
那么输出如下所示:
[1、4、9、16、25]
或者使用 map 和 lambda 函数
n = int(raw_input("How many squares? "))
map(lambda x: x*x, range(n))
如果你想从 1 开始
map(lambda x: x*x, range(1, n+1))