-4

私はPythonの初心者です。Python 3 これは私の実習課題です:

関数と while ループ。指定された関数をテストするメイン関数を作成します

summation (value) この関数は、1 と value の合計を返します。値が正になると想定できます。たとえば、合計 (5) は 15 (1 + 2 + 3 + 4 + 5) を返します。

それは私に与えます: print("Summation:",summation(10))

これまでのところ、

def summation (value):
    num = 1
    while num <= value:
        num = num + 1
    return value

私はこれが間違っていると確信していますが、それを行う方法がわかりません。どんな助けでも大歓迎です!!

4

4 に答える 4

2

その値が表している限界は何ですか? 追加するシーケンス内のアイテムの数。

ループ中に何を追跡する必要がありますか? これまでのすべての数字の合計、現在の数字、およびループが終了したとき。

ループの各反復で何をする必要がありますか? 現在の数値を合計に追加し、現在の数値をシーケンス内の次の数値に進めます。

ループが完了すると何ができますか? 最後の「現在の」数値とこれまでの合計。

于 2013-09-25T01:40:23.857 に答える
1

これは、テスト用のメインを含む、もう少しPythonicなものです。

import sys

__author__ = 'Michael'


def summation(n):
    return sum(x for x in range(1, n+1))

if __name__ == '__main__':
    """http://stackoverflow.com/questions/18994802/basic-python-counter"""
    n = int(sys.argv[1])
    print summation(n)
于 2013-09-25T01:51:51.480 に答える
1

次のようなことを試してください:

def summation(n):
    count = 0
    num = 0
    while count < n:
        count+=1
        num+=count
    return num

print summation(5)

これは印刷されます15

ループ回数が元の数よりも少ない間だけループするwhileループを使用し、合計を取得するために合計する別の変数を使用しました

于 2013-09-25T01:42:45.633 に答える
1

余談ですが、あなたが求められているのは、Python の組み込み functionsumに , を適用したrange場合と同等の結果を生成するコードを作成することsum(range(1, value+1))です。ここで、range は 1 と value の間のすべての値を返し、それらを加算します。

同様のことができます:

def summation(value):
    i = 1
    sum_value = 0
    while i <= value:
        sum_value = sum_value + i
        i = i + 1 
    return sum_value
于 2013-09-25T01:40:38.667 に答える