初级Python用户布尔查询

2024-04-24 00:26:55 发布

您现在位置: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 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

有人能帮我吗?你知道吗


Tags: infalsetrue列表forindexlenreturn
3条回答

如果您的语句if lst1[index] != lst2[len(lst2)-1-index]语句发现任何不匹配的项,那么我们的函数将立即结束。不再执行代码。你知道吗

当您添加else语句时,这意味着如果有任何匹配项,函数将返回True,并且不再执行任何代码。你知道吗

return False导致函数完全退出,同时返回False,因此在这种情况下永远不会到达return True行。放置早期返回语句是中断函数执行的一种方法

您提出的第一个和第二个代码提供不同的输出。 您应该知道函数只能使用return一次。你知道吗

有帮助的是打印中间结果。你知道吗

1个

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

用添加的行运行我的代码,打印中间结果。您将看到第二个函数将只迭代第一个元素,然后返回TrueFalse。你知道吗

相关问题 更多 >