nが原因であることはわかっていますが、nは任意の変数であると想定されており、nのままにしておくと、これが私が持っているものです:
def average(n):
if n >= 0:
avg = sum((range(1:int(n)))/float(len(range(1:int(n)))))
print avg
どうすれば修正できますか?
1 から n までの x の合計は単純に(n + 1) * (n / 2)です。合計される要素の数は ですn。少し単純化すると、新しい関数は次のようになります
def average(n):
return (n + 1) / 2.0
Python の range() の排他的な上限の動作 (つまり、 average(10) が 1 ~ 10 ではなく 1 ~ 9 の値の合計の平均を返す) が実際に必要な場合は、これを調整する必要があります。
私は間違っているかもしれませんが、range(1:int(n))は構文的に正しくないように見え、括弧が一致しません。0からnの範囲の数値の平均を計算することをお勧めします。その場合、私はあなたのコードを次のように置き換えます:
def average(n):
if n >= 0:
avg = sum((range(int(n))))/float(n)
print avg
範囲が常に1:nの場合は、これを使用してみませんか。
avg = sum((range(1:int(n)))/float(n))
または多分私はあなたの質問を理解していません...