数値を含む数値の範囲を加えた関数を作成しようとしていました。数値を含む範囲内のすべての数値を追加する
ときI入力5本機能が動作しないのはなぜだから、私は15
を受ける必要がありますか?
def sum_nums(number):
start = 0
for index in range(0,len(number)):
start += index
return start
print sum_nums(5)
数値を含む数値の範囲を加えた関数を作成しようとしていました。数値を含む範囲内のすべての数値を追加する
ときI入力5本機能が動作しないのはなぜだから、私は15
を受ける必要がありますか?
def sum_nums(number):
start = 0
for index in range(0,len(number)):
start += index
return start
print sum_nums(5)
までこれが1つのライナーで行うことができるが、私はあなたがしようとしている形式のソリューションであなたを助けるでしょう反復処理するときに達成することができ欲しいもの。
def sum_nums(number):
total = 0
for i in range(number + 1):
total += i
print total
入力5
出力も15
、あなたのエラーメッセージのとおり、いくつかの明確化。文字列にはlen
を使用します。整数には長さがありません。 range
関数に渡すだけで、(開始番号を指定しない場合は)1からその番号までのすべての番号を試しますが、それを含めません。だから私たちはrange(number + 1)
にターゲット番号を含めるのです。
・ホープ、このことができます:)
以下のように「reduce」でビルドされたpythonを使用してください。また、あなたは1から開始し、6
reduce(lambda x, y: x+y, range(1, 6))
をあなたがして1つのライナーでこれを行うことができます。これを打破するには
def sum_range_inclusive(number):
return sum(range(number + 1))
:
# assume number is 5 for now
number = 5
# exclusive, doesn't include the number
range(number)
# returns [0, 1, 2, 3, 4]
# inclusive, includes the number
range(number + 1)
# returns [0, 1, 2, 3, 4, 5]
# sum of inclusive range
sum([0, 1, 2, 3, 4, 5])
# returns 15
を誰かのdidn場合は、この質問は間違っだろうsum(range(n))
は常にn*(n-1)/2
です。値n
を含むこれを行う場合は、式はsum(range(n+1))
とn*(n+1)/2
です。
'len(number)'を 'number'に置き換えてみてください。 – Blorgbeard
なぜあなたは 'range 'の代わりに数字の' len'を取っていますか? – TigerhawkT3
また、このコードではエラーメッセージが表示されます。質問には何らかのエラーが含まれていてください。 – Blorgbeard