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数的和。
最后打印结果。