def fibonacci(num):
a, b = 0, 1
fib_nums = []
while b <= num:
fib_nums.append(b)
a, b = b, a+b
if num in fib_nums:
print(num)
else:
even_fib_nums = [i for i in fib_nums if i%2==0]
print(sum(even_fib_nums))
num = int(input("请输入一个数字:"))
fibonacci(num)
解释:
首先定义函数fibonacci
,该函数的参数为num
,即需要判断的数字。
定义a
和b
分别为0和1,表示后续Fibonacci数列中的前两个数。
定义一个列表fib_nums
,用于存放所有不超过num
的Fibonacci数。
通过循环,将不超过num
的Fibonacci数添加到fib_nums
中。
判断num
是否在fib_nums
中,如果存在,说明num
是一个Fibonacci数,直接打印num
;如果不存在,则继续执行第6步。
定义列表even_fib_nums
,用于存放fib_nums
中的所有偶数Fibonacci数。
使用列表生成式,筛选出所有偶数Fibonacci数,并将其添加到even_fib_nums
中。
计算even_fib_nums
中所有数的和,即为所有偶数Fibonacci数的和。
最后打印结果。