gpt4 book ai didi

Python:列表是否包含 3 个相加为 7 的连续整数?

转载 作者:太空宇宙 更新时间:2023-11-03 15:06:01 24 4
gpt4 key购买 nike

我正在为申请编码训练营准备 Material 。这是我正在努力解决的练习题(使用 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 中,循环结构是 forwhile 。因此,您需要使用其中任何一个。

我可以给你一些问题的提示,不会为你提供完整的代码(否则你将如何学习?)-

  1. 您需要遍历从第一个索引 (0) 到 len(numbers) -2 的索引。可以帮助您执行此操作的一个简单函数是 enumerate() ,它在使用 for 循环遍历它时会吐出索引和实际元素(如果您使用的是 enumerate ,则需要设置一个条件来检查索引是否应小于 len(数字) - 2).

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

  3. 许多人常犯的一个错误是如果不满足上述(2)条件则返回False,但实际上您需要做的是仅在不匹配时才返回它完全没有(在函数的末尾)。

关于Python:列表是否包含 3 个相加为 7 的连续整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32773514/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com