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 条件返回语句是最 Pythonic 的?