首先,我需要从455,111,451到455,112,000的范围内提取数字。 我可以手动执行此操作,我只需要50个数字,但这不是重点。
我试图:
for a in range(49999951,50000000):
print +str(a)
我该怎么办?
答案 0 :(得分:14)
使用sum
>>> sum(range(49999951,50000000))
2449998775L
它是builtin function,这意味着您无需导入任何内容或执行任何特殊操作即可。你应该在问这里之前先咨询文档或教程,以防它已经存在 - 而且,StackOverflow也有一个搜索功能,可以帮助你找到问题的答案。
在这种情况下,sum
函数获取一个整数列表,并以下面类似的方式逐步将它们相加:
>>> total = 0
>>> for i in range(49999951,50000000):
total += i
>>> total
2449998775L
此外 - 与Reduce
类似:
>>> reduce(lambda x,y: x+y, range(49999951,50000000))
2449998775L
答案 1 :(得分:5)
sum
是显而易见的方法,但是如果你有一个大范围并且通过每次增加每个数字来计算总和可能需要一段时间,那么你可以用数学方式来做这个(如{{1中所示) }}):
sum_range
输出:
start = 49999951
end = 50000000
total = sum(range(start, end))
def sum_range(start, end):
return (end * (end + 1) / 2) - (start - 1) * start / 2
print total
print sum_range(start, end)
答案 2 :(得分:0)
我没有很好地回答你的问题 如果你想得到数字之和
sum = 0
for a in range(x,y):
sum += a
print sum
如果您想在列表中包含数字:
lst = []
for a in range(x,y):
lst.append(a)
print lst