Python初学者用户布尔查询
CodeAcademy的Python课程让我学习循环函数,但我不了解结果。目标是查看一个列表是否是另一个列表的镜像。i、 e.[1,2,3]至[3,2,1] 20分钟后,我查看了解决方案,我不明白为什么每次都不返回真值Python初学者用户布尔查询,python,Python,CodeAcademy的Python课程让我学习循环函数,但我不了解结果。目标是查看一个列表是否是另一个列表的镜像。i、 e.[1,2,3]至[3,2,1] 20分钟后,我查看了解决方案,我不明白为什么每次都不返回真值 def reversed_list(lst1, lst2): for index in range(len(lst1)): if lst1[index] != lst2[len(lst2)-1-index]: return False return T
def reversed_list(lst1, lst2):
for index in range(len(lst1)):
if lst1[index] != lst2[len(lst2)-1-index]:
return False
return True
“return True”缩进到与“for index”相同的级别,这将覆盖从前一行返回的任何值
或者,当我在“if”缩进中引入“else”时,所有内容都返回True:
def reversed_list(lst1, lst2):
for index in range(len(lst1)):
if lst1[index] != lst2[len(lst2)-1-index]:
return False
else:
return True
有人能帮助noob吗?返回False会导致函数在返回False时完全退出,因此在这种情况下永远不会到达返回True行。如果您的语句
如果lst1[index]!=lst2[len(lst2)-1-index]
语句发现任何不匹配的项,我们的函数将在此时结束。不再执行任何代码
当您添加else语句时,这意味着如果有任何项不匹配,函数将返回True,并且不再执行任何代码。您建议的第一个和第二个代码将提供不同的输出。 您应该知道,函数只能使用
return
一次
帮助的是打印出中间结果
一,
二,
使用添加的打印中间结果的行运行我的代码。您将看到第二个函数将只在第一个元素上迭代,然后返回
True
或False
,在第一种情况下返回True
是函数的结束。您必须迭代整个范围(len(lst1))
才能到达它。因此,如果循环中的if
的条件匹配,则执行returnfalse
语句,函数在此结束
在第二种情况下,您从不遍历整个列表。在第一次迭代中,检查条件
lst1[index]!=lst2[len(lst2)-1-index]
其中index=0
并返回真或假。您需要了解每个函数只能返回一次。在第二种情况下,只要第一次迭代没有满足它将立即返回True
,所有后续迭代都不会运行。在第一个函数中,只有当每次迭代都满足条件时,才会返回True
,否则它永远无法到达该行。
def reversed_list(lst1, lst2):
for index in range(len(lst1)):
print(index)
if lst1[index] != lst2[len(lst2)-1-index]:
print('False')
return False
print('True')
return True
def reversed_list(lst1, lst2):
for index in range(len(lst1)):
print(index)
if lst1[index] != lst2[len(lst2)-1-index]:
print('False')
return False
else:
print('True')
return True