【发布时间】:2019-11-21 01:08:51
【问题描述】:
如果列表“nums”在某处的某个 3 旁边包含一个 3,则此函数应返回 True。
函数“has_33”应该接受一个列表参数,所以这个循环可以完美运行:-
def has_33(nums):
for i in range(0, len(nums)-1):
if nums[i:i+2] == [3,3]:
return True
return False
但是当我以这种形式这样做时:-
def has_33(nums):
for i in range(0,len(nums)-1):
if nums[i:i+2] == [3,3]:
return print("True")
else:
if i == len(nums)-1:
return print("False")
如果数组不包含条件,则无法打印“False”。
那么为什么第一个循环可以工作,而第二个循环却不工作,尽管它们是相同的?
【问题讨论】:
-
num == len(nums)-1中的num是什么?return print()也没有多大意义。您要打印false/true还是退回? -
第一次迭代时似乎满足条件,然后函数返回,不再执行迭代
-
num 是在“for”循环中分配给列表“nums”中每个元素的变量
-
@AhmedAhmedEG2:与您在此处提供的代码不同。
-
所以我说如果条件不满足,首先检查是否 num == len(nums)-1 然后它可以打印 False 因为这将确保循环完全完成它的 jop
标签: python python-3.x