4

まず、455,111,451 から 455,112,000 までの範囲の数字を抽出する必要があります。これは手動で行うこともできます。必要な数字は 50 個しかありませんが、それは重要ではありません。

私がしようとしました:

for a in range(49999951,50000000):
print +str(a)

私は何をすべきか?

4

4 に答える 4

14

使用する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
于 2013-07-04T14:27:42.887 に答える
5

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
于 2013-07-04T14:37:49.753 に答える
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
于 2013-07-04T14:31:01.750 に答える
0

これを試して!!

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))
于 2022-01-09T10:18:45.483 に答える