Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 列表中前两个元素的总和_Python_Loops - Fatal编程技术网

Python 列表中前两个元素的总和

Python 列表中前两个元素的总和,python,loops,Python,Loops,我想使用for循环来测试列表的每个成员是否具有列表前两个元素的总和。输出应该是这样的。 提前谢谢 list = [1,1,2,3,5,8,13,21,34,55,85,143] 输入:[1,1,2,3,5,8,13,21,34,55,85143] 输出: 0+1=1 True 1+1=2 True 1+2=3 True 2+3=5 True 3+8=11 True 8+13=21 True 13+21=34 True 21+34=55 True 34+55=89 False 55+85 =

我想使用for循环来测试列表的每个成员是否具有列表前两个元素的总和。输出应该是这样的。 提前谢谢

list = [1,1,2,3,5,8,13,21,34,55,85,143] 
输入:
[1,1,2,3,5,8,13,21,34,55,85143]

输出:

0+1=1
True
1+1=2 
True
1+2=3
True
2+3=5
True
3+8=11
True
8+13=21
True
13+21=34
True
21+34=55
True
34+55=89
False
55+85 =140
False

我厌倦了一些循环逻辑,但无法得到期望的结果

l =[1,1,2,3,5,8,13,21,34,55,85,143] 
sum=0 
for element in l:
    print(element)
    sum +=element 
    print(sum)
输出-

1 1 True
2 2 True
3 3 True
4 5 True
5 8 True
6 13 True
7 21 True
8 34 True
9 55 True
10 88 False
11 143 True
输出-

1 1 True
2 2 True
3 3 True
4 5 True
5 8 True
6 13 True
7 21 True
8 34 True
9 55 True
10 88 False
11 143 True
只需浏览列表(for循环)并将第i项和第i+1项的总和与第i+2项(if语句)进行比较。这应该很容易理解。 输出应与您的相同:

1 + 1 = 2 True
1 + 2 = 3 True
2 + 3 = 5 True
3 + 5 = 8 True
5 + 8 = 13 True
8 + 13 = 21 True
13 + 21 = 34 True
21 + 34 = 55 True
34 + 55 = 88 False
55 + 88 = 143 True
只需浏览列表(for循环)并将第i项和第i+1项的总和与第i+2项(if语句)进行比较。这应该很容易理解。 输出应与您的相同:

1 + 1 = 2 True
1 + 2 = 3 True
2 + 3 = 5 True
3 + 5 = 8 True
5 + 8 = 13 True
8 + 13 = 21 True
13 + 21 = 34 True
21 + 34 = 55 True
34 + 55 = 88 False
55 + 88 = 143 True

您可以将列表本身压缩在一起,并对其进行迭代。对于zip中的第一个列表,请在前面加上
[0]
。避免索引应有助于提高可读性:

l = [1,1,2,3,5,8,13,21,34,55,88,143] 

for a, b, c in zip([0]+l, l, l[1:]):
    print(f"{a} + {b} = {c} {a + b == c}")
    
印刷品:

0 + 1 = 1 True
1 + 1 = 2 True
1 + 2 = 3 True
2 + 3 = 5 True
3 + 5 = 8 True
5 + 8 = 13 True
8 + 13 = 21 True
13 + 21 = 34 True
21 + 34 = 55 True
34 + 55 = 88 False
55 + 88 = 143 True

您可以将列表本身压缩在一起,并对其进行迭代。对于zip中的第一个列表,请在前面加上
[0]
。避免索引应有助于提高可读性:

l = [1,1,2,3,5,8,13,21,34,55,88,143] 

for a, b, c in zip([0]+l, l, l[1:]):
    print(f"{a} + {b} = {c} {a + b == c}")
    
印刷品:

0 + 1 = 1 True
1 + 1 = 2 True
1 + 2 = 3 True
2 + 3 = 5 True
3 + 5 = 8 True
5 + 8 = 13 True
8 + 13 = 21 True
13 + 21 = 34 True
21 + 34 = 55 True
34 + 55 = 88 False
55 + 88 = 143 True

为什么
3+8=11
false?输入中的
85
在哪里?您是否正在尝试验证斐波那契序列?或者只是一般意义上的?我想你用了if条件。如果(list.length-2==index),则继续循环。为什么
3+8=11
false?输入中
85
在哪里?您是否正在尝试验证斐波那契序列?或者只是一般意义上的?我想你用了if条件。如果(list.length-2==索引),则继续循环。