我想使用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])
答案 0 :(得分:0)
我不认为你理解退货声明的作用:
return语句导致执行离开当前子例程,并在调用子例程之后立即恢复到代码中的点,称为返回地址。
您需要在打印语句中包装consecCheck([1,2,3,5])
。否则,所有它都会调用函数(不再打印任何东西)并返回到它正在做的事情。
答案 1 :(得分:0)
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
到除上一个之外的所有语句