Python - 在条件语句中使用返回

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python - 在条件语句中使用返回相关的知识,希望对你有一定的参考价值。

我想使用return而不是print语句,但是当我用return返回print语句时,我没有得到任何回复。我知道我错过了一些明显的东西:

def consecCheck(A):
    x = sorted(A)
    for i in enumerate(x):
        if i[1] == x[0]:
            continue
        print x[i[0]], x[i[0]-1]
        p = x[i[0]] - x[i[0]-1]
        print p
        if p > 1:
            print "non-consecutive"
            break
        elif x[i[0]] == len(x):
            print "consecutive"

if __name__ == "__main__":
    consecCheck([1,2,3,5])

-----更新------这是HEATH3N回答后的正确代码:

def consecCheck(A):
    x = sorted(A)
    for i in enumerate(x):
        if i[1] == x[0]:
            continue
        print x[i[0]], x[i[0]-1]
        p = x[i[0]] - x[i[0]-1]
        print p
        if p > 1:
            a = "non-consecutive"
            break
        elif x[i[0]] == len(x):
            a = "consecutive"
    return a

if __name__ == "__main__":
    print consecCheck([4,3,7,1,5])
答案

我不认为您理解return语句的作用:

return语句导致执行离开当前子例程,并在调用子例程之后立即恢复到代码中的点,称为返回地址。

您需要在打印语句中包装consecCheck([1,2,3,5])。否则,所有它都会调用函数(不再打印任何东西)并返回到它正在做的事情。

另一答案

print获取python对象并将打印的表示输出到控制台/输出窗口

return语句用于函数执行程序调用位置时,如果函数执行到达return语句,则不会执行其他行。阅读详细信息difference between print and return

因此,在您的情况下,如果要在输出控制台中显示结果,可以按以下示例执行:

def my_function():
    # your code
    return <calculated-value>
val = my_function()
print(val) # so you can store return value of function in `val` and then print it or you can just directly write print(my_function())

在您的代码中,您打印值并继续执行,在这种情况下,您可以考虑使用@COLDSPEED建议的yield关键字,或者只使用print来表示除最后一个之外的所有语句

以上是关于Python - 在条件语句中使用返回的主要内容,如果未能解决你的问题,请参考以下文章

片段着色器输出干扰条件语句

常用python日期日志获取内容循环的代码片段

魅力python------if - else 语句

哪个 Python 条件返回语句是最 Pythonic 的?

如何使用带有select onchange的条件语句在javascript函数中返回html代码

简化条件表达式