求任意个连续整数的和 python_Python:list是否包含3个连续的整数,总和为7?

该博客讨论了如何编写一个Python函数,检查输入的整数列表中是否存在三个连续元素的和为7。作者分享了当前实现的问题,并请求帮助改进代码,以确保函数正确处理列表的边界情况。
摘要由CSDN通过智能技术生成

我正在为我的编码训练营准备应用程序的准备材料.这是我在使用(使用Python)时遇到的实践问题:

“编写一个函数’lucky_sevens(numbers)’,该函数接收一个整数列表,如果任意三个连续元素的总和为7,则输出True.

确保您的代码正确检查数组的第一个和最后一个元素.”

我知道如何一次在一个元素中循环遍历一个数组,但是不知道如何“保留”一个元素,同时还根据提示要求评估相对于第一个元素的第二个和第三个元素.从下面的尝试中可以看出,我不确定何时/何地/如何增加索引值来搜索整个列表.

def lucky_sevens(numbers):

index1 = 0 # For assessing 1st of 3 numbers

index2 = index1 + 1 # For assessing 2nd of 3 numbers

index3 = index2 + 1 # For assessing 3rd of 3 numbers

# If all index values are within the list...

if index1 <= (len(numbers) - 2) and index2 <= (len(numbers) - 1) and index3 <= len(numbers):

# If the values at those indices sum to 7...

if numbers[index1] + numbers[index2] + numbers[index3] == 7:

print True

else:

print False

# I think the increments below may be one of the places I am incorrect

index1 += 1

index2 += 1

index3 += 1

当我跑步

lucky_sevens([2, 1, 5, 1, 0])

我认为这是打印False,因为它只考虑第0、1和2位置的元素(总和为8,而不是7).

它应该显示True,因为位于第一,第二和第三位置的元素总计为7.(1 5 1 = 7).

有人可以提供建议吗?我会很感激.

解决方法:

是的,您的情况仅考虑第一,第二和第三要素.这是因为您的函数中没有任何循环.

在Python循环中,构造是for和while的.因此,您将需要使用其中之一.

我可以给您一些提示,而不是提供完整的代码(否则您将如何学习?)-

>您需要遍历从第一个索引(0)到len(numbers)-2的索引.一个简单的函数可以帮助您做到这一点,它将是enumerate(),当使用for循环对其进行遍历时,它会同时显示索引以及实际元素(如果使用enumerate,则需要设置一个条件来检查索引是否为小于len(数字)-2).

>然后,您还应该从索引1 pos和索引2的位置获取元素,并对它们求和并检查是否等于7,如果是,则应返回True.

>许多错误是在不满足上述(2)条件的情况下返回False的一个常见错误,但是实际上您需要做的就是仅在根本没有匹配项时(在函数末尾)返回它.

标签:list,sum,python

来源: https://codeday.me/bug/20191027/1947735.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值