为什么while循环之后的语句不总是执行?

时间:2019-11-21 05:52:46

标签: python while-loop

我对python很陌生,并且遇到了以下代码:

def function(array):
    i = 0
    j = 10
    while i < j:
        if array[i]!=array[j]
            return False
        i += 1
        j -= 1
    return True

我不明白为什么True循环中不管发生什么,都不会总是将while值赋给该函数。 while循环似乎只是检查if语句,并且在完成循环后,无论如何应该将True值分配给该函数。但是这段代码的工作方式如下:if语句检查条件,如果条件为true,则将False分配给函数,如果条件为true,则将True分配给函数。功能。但是True的分配不在while循环中,因此无论True循环中发生了什么,我们都应该分配while使其起作用。我无法理解这里的逻辑,任何人都可以在此启发我。非常感谢。

4 个答案:

答案 0 :(得分:2)

return语句结束函数调用的执行并“返回”结果...

return语句结束函数。 来自https://www.python-course.eu/python3_functions.php

答案 1 :(得分:2)

使用return将程序的控制权交还给调用函数。因此,当您处于while循环中,并且if子句中的条件被评估为true时,您的function将终止执行并将程序的控制权移交给调用函数。函数将返回true的唯一情况是,在执行while循环期间,如果if子句中的条件从未满足。

答案 2 :(得分:1)

Return退出当前函数或方法。

在if语句中返回False时,它将不继续其余代码,并且始终返回false。

答案 3 :(得分:0)

在循环的其余部分有机会完成之前,条件可能已经执行。什么时候

if array[i]!=array[j]

满足,则调用return False,退出循环并返回False。

发生这种情况是因为

array[i]!=array[j]

是循环结束并返回True之前首先要满足的条件。

相反,您可能希望“跳过”满足此条件的循环部分。如果是这样,请使用关键字

continue

这会将当前迭代“跳过”到下一个迭代,并将继续循环。

代码如下:

  while i < j:
    if array[i]!=array[j]:
      continue