Python在列表中找不到正确的值
我试图解决这个编码难题: 给定一个int数组,如果数组中的前4个元素之一是9,则返回True。数组长度可能小于4Python在列表中找不到正确的值,python,python-3.x,Python,Python 3.x,我试图解决这个编码难题: 给定一个int数组,如果数组中的前4个元素之一是9,则返回True。数组长度可能小于4 def array_front9(nums): end = len(nums) if end > 4: end = 4 for i in range(end): if nums[i] == 9: return True elif nums[i] != 9: r
def array_front9(nums):
end = len(nums)
if end > 4:
end = 4
for i in range(end):
if nums[i] == 9:
return True
elif nums[i] != 9:
return False
它只通过了大约一半的测试用例
我现在只编写了大约一周的代码,我不明白为什么我的代码没有通过测试用例。有人能解释一下为什么这些测试用例失败,以及我需要修改什么来修复它吗?请以书面形式发布您的代码以及完整的错误。提示:切片表示法(
lst[:]
),以及操作符中的…您的返回False
太早了。您的函数当前为“is the first element==9”,因为如果a[0]!=9
。您需要将return False
移动到每个元素测试后发生。但是我同意@deceze,有更好更简单的方法来实现这一点,谢谢大家,我理解这个错误,请原谅我第一次使用这些平台时发布的那种混乱。请以书面形式发布您的代码以及完整的错误。提示:切片表示法(lst[:]
),以及中的操作符…您的返回False
太早了。您的函数当前为“is the first element==9”,因为如果a[0]!=9
。您需要将return False
移动到每个元素测试后发生。但是我同意@deceze,有更好更简单的方法来实现这一点,谢谢大家,我理解这个错误,请原谅我第一次使用这些平台时发布的那种混乱。为什么要使用if..else
?如果在短于4的列表中使用[:4]
会发生什么?好的。接下来,将其进一步减少为以nums[:4]
返回9…我知道有一些较短的方法可以做到这一点,但作为初学者,我对较短的方法不太适应,最终我会学会的。再次感谢。为什么要使用if..else
?如果在短于4的列表中使用[:4]
会发生什么?好的。接下来,将其进一步减少为以nums[:4]
返回9…我知道有一些较短的方法可以做到这一点,但作为初学者,我对较短的方法不太适应,最终我会学会的。再次感谢。
def is9(nums):
return 9 in nums[:4]