まず、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))