这段代码怎么形成这种效果的


n = int(input("输入数字计算这个数字的!"))
print(sum([sum([n for n in range(1,i+1)]) for i in range(1,n+1)]))

原贴为https://ask.csdn.net/questions/7728727?ops_request_misc=&request_id=&biz_id=106&utm_term=python%E6%8E%A8%E5%AF%BC%E5%BC%8F&utm_medium=distribute.pc_search_result.none-task-ask-2~ask~sobaiduweb~default-1-7728727.pc_ask&spm=1018.2226.3001.4187
我始终没想明白怎么写的
for i in range(1,n+1)]
#这一段我认为是将数字累加到i上形成一个列表即如果是n = 4 则成立[1,2,3,4]
[sum([n for n in range(1,i+1)]))
#这段应该是将 {for i in range(1,n+1)]}应该是将[1,2,3,4]加起来即输出的值是10,但是输出来的值是[1,3,6,10]
#求指点

当n等于4的时候,拆开来等于
sum([sum([1]), sum([1,2]), sum([1,2,3]), sum(1,2,3,4])])
不知道这样是不是清楚点

首先是for i in range(1,n+1),这是一个循环,使得i遍历1到n
然后针对每个i,执行sum([n for n in range(1,i+1)],就是计算1到i之间所有整数的和
最后再计算上述所有和值的总和
如果输入4,最后的列表确实是[1,3,6,10],sum求和输出为20
并没有实现提示所述的4的阶乘值