【发布时间】:2016-08-30 06:35:57
【问题描述】:
我是 Python 和一般编程的初学者,我正在尝试解决 codingbat.com 上的一个问题(该问题在“Warmup-2”部分下称为“array_front9”)。
问题是:“给定一个整数数组,如果数组中的前 4 个元素之一是 9,则返回 True。数组长度可能小于 4。”
这是我的代码,如果我创建一个列表然后在本地运行它(在 codingbat.com 上需要创建一个函数,但我没有创建一个函数来在本地测试我的代码):
arr = [14,9,28,55,66,33,789,4548]
for i in range (4):
if arr[i] == 9:
print('True')
print('False')*
这是我试图在 codingbat.com 上运行的代码,但我收到“错误:列表索引超出范围”错误:
def array_front9(arr):
for i in range(4):
if arr[i] == 9:
return True
return False
这里是根据codingbat.com的解决方案:
def array_front9(nums):
# First figure the end for the loop
end = len(nums)
if end > 4:
end = 4
for i in range(end): # loop over index [0, 1, 2, 3]
if nums[i] == 9:
return True
return False
这是此问题的当前 URL:http://codingbat.com/prob/p110166
谁能指出我做错了什么?
【问题讨论】:
-
codingbat.com 代码和你的代码的主要区别是
return False语句。 codingbat.comreturn False在 for 循环内,而在您的代码中return False在 for 循环外。有很多更好的方法可以做到这一点。你可以检查if 9 in arr[0:4] -
我真的很喜欢 IF 循环解决方案!
-
我也提供了一个基于此的答案,如果你喜欢它并且对你有用,请点赞/接受它作为答案。