gpt4 book ai didi

python - 如果数组包含 2 或 3,则返回 True

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

我遇到了这个 CodingBat 问题:

Given an int array length 2, return True if it contains a 2 or a 3.

我尝试了两种不同的方法来解决这个问题。谁能解释我做错了什么?

#This one says index is out of range, why?
def has23(nums):
for i in nums:
if nums[i]==2 or nums[i]==3:
return True
else:
return False
#This one doesn't past the test if a user entered 4,3.
#It would yield False when it should be true. Why?
def has23(nums):
for i in nums:
if i==2 or i==3:
return True
else:
return False

最佳答案

您的第一个不起作用,因为 Python 中的 for 循环与其他语言中的 for 循环不同。它不是遍历索引,而是遍历实际元素。

for item in nums 大致等同于:

for (int i = 0; i < nums.length; i++) {
int item = nums[i];

...
}

你的第二个不起作用,因为它返回 False 太快了。如果循环遇到不是 23 的值,它会返回 False 并且不会遍历任何其他元素。

将循环更改为:

def has23(nums):
for i in nums:
if i == 2 or i == 3:
return True # Only return `True` if the value is 2 or 3

return False # The `for` loop ended, so there are no 2s or 3s in the list.

或者只使用in:

def has23(nums):
return 2 in nums or 3 in nums

关于python - 如果数组包含 2 或 3,则返回 True,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15581837/

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