所以首先,我需要从 455,111,451 到 455,112,000 的范围内提取数字。我可以手动完成,我只需要 50 个数字,但这不是重点。
我尝试过了:
for a in range(49999951,50000000):
print +str(a)
我应该怎么办?
利用sum
>>> sum(range(49999951,50000000))
2449998775L
它是一个内置函数,这意味着您不需要导入任何东西或做任何特殊的事情来使用它。在您来这里询问之前,您应该始终查阅文档或教程,以防它已经存在 - 此外,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
sum
是显而易见的方法,但如果您有一个很大的范围,并且每次通过递增每个数字来计算总和可能需要一段时间,那么您可以用数学方法代替(如图所示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)
输出:
2449998775
2499998775
如果你想得到数字的总和,我没有很好地回答你的问题
sum = 0
for a in range(x,y):
sum += a
print sum
如果你想在列表中有数字:
lst = []
for a in range(x,y):
lst.append(a)
print lst
尝试这个!!
import re
fhand = 'Actual_regex_sum_1232793.txt'
fopen = open(fhand)
nlist = list()
for lines in fopen:
line = lines.rstrip()
stuff = re.findall('([0-9]+)', line)
if len(stuff) < 1:
continue
for i in range(len(stuff)):
num = int(stuff[i])
nlist.append(num)
print(sum(nlist))