2016-04-07 8 views
0

は、だから、私は恩着せ順に出力を追加することができますどのようにコード使用のPython

def formula(n): 
    while(n < 11): 
     answera = 15/(-4)** n 
     print(answera) 
     n = n + 1 

formula(1) 

がありますか?ここ

例えば、

first_output = (the output of n = 1) 

second_output = (the output of n = 1) + (the output of n = 2) 

third_output = (the output of n = 1) + (the output of n = 2) + (the output of n = 3) 

など..

+0

n番目の出力=出力N +(N-1)番目出力 –

+0

中間出力は気になりますか?つまり、式(1)と式(2)がどのように見えるか気になりますか?そして、明確にするために:あなたは 'formula'をとり、それを1、2、3 ...のような入力リストに適用したいのですか? – Makoto

+0

機能が不明です。 'n = 1'の場合、結果は10個の異なる' n '値の '15 /( - 4)** n'の10倍の合計ですか?または 'formula(n)'は '15 /( - 4)** n'を返すだけですか? – ozgur

答えて

3

変数answeraをwhileループの外側に定義する必要があります。そのため、ループの外側にそのshopeが存在するようにして、値を返すと完全に更新された値が返されるようにします。このようなもの。

def formula(n): 
    answera = 0 
    while(n < 11): 
     answera += 15/(-4)** n 
     print(answera) 
     n = n + 1 
    print(answera) 

formula(1) 

これで正しい結果が得られるはずです。

1
def formula(n): 
    while(n < 11): 
     answera += 15/(-4)** n 
     print(answera) 
     n = n + 1 

アイデアは、あなたが変数の一つで15/(-4)**nの値をaccumlateする必要があること..です(answera )、それを印刷し続けます。

これがあなたの質問に答えることを願っています。

0

質問には多少の曖昧さがあります。あなたは 'answera'、または 'formula'の合計を求めますか?

「answera」の場合は、あなただけの「降伏」と「印刷」を交換し、「和」呼び出すことができます。

def formula(n): 
    while(n < 11): 
     answera += 15/(-4)** n 
     yield answera 
     n = n + 1 

sum(formula(2)) 

これは「式」generatorを行い、「合計」は、その発電機を反復処理しますそれが尽きるまで。

あなたは、その後、KISSの原則に従い、別の関数を使って機能をラップ呼び出し、複数の「式」の合計をしたい場合:

# assuming that 'formula' is a generator like above 

def mega_formula(iterations): 
    total = [] 
    for i in range(1, iterations + 1): # b/c range indexs from zero 
     total.append(sum(formula(i)) 
    return sum(total)