フィボナッチ数列延長テーマ

5609 ワード

これは中国MOOC上嵩天先生の「python言語プログラム設計」の試験問題の一つです.
要件は次のとおりです.
フィボナッチ数列を計算する関数を作成し、再帰方式を採用し、nを超えないのでフィボナッチ数列要素を出力する.
上記の関数を呼び出して、次の機能を完了します.
ユーザは整数nを入力し、nを超えないすべてのフィボナッチ数列要素を出力し、数列の要素と平均数を出力し、出力は順番に英語のカンマとスペースで分割する.
以下は私が書いたコードですが、まだ考えていないところがあるかもしれません.
n=eval(input())
def f(n):
    if n==1 or n==2:
        return 1
    elif n==0:
        return 0
    else:
        return f(n-1)+f(n-2)


def other_f(n):
    s = []
    for i in range(n+1):
        try:
            if f(i)<=f(n):
                s.append(f(i))
        except:
            print("    ")
    sum1=sum(s)
    avg=int(sum1/len(s))
    s.append(sum1)
    s.append(avg)
    return s

print(other_f(n))