このプログラムの目的は、関数 'Fib' が 2 つの値を取り、それらをフィボナッチ数列に通し、変数 'sequence' に項を追加することです。'check' 関数を通過して Limit Reached を返すと、リスト 'final' に偶数の値が追加され、ループ後に 'final' の合計が出力されます。
問題は、Fib がどのような値を取り込んでも、'final' は常に値がないことです。私はプログラミングに非常に慣れていないため、なぜこれを行っているのか理解できないようです...
def even(x):
v = list(str(x))[-1]
if v == '0' or v == '2' or v == '4' or v == '6' or v == '8':
return x
else:
return 0
def check(sequence):
for v in sequence:
if v >= 20:
return 'Limit Reached'
else:
return None
def Fib(x,y):
sequence = [x,y]
a = 0
b = 1
final = []
while len(sequence) < 100:
term = sequence[a] + sequence[b]
sequence.append(term)
if check(sequence) == 'Limit Reached':
for v in sequence:
final.apppend(even(v))
print sum(final)
break
a += 1
b += 1