![](/img/trans.png)
[英]Selenium - How do I compare get_attribute value when it returns None [Python]
[英]Python returns none when I do have a return value
我正在复习递归,我制作了一个这样的 python 文件:
#!/usr/bin/python
import sys
if (len(sys.argv)!=3):
raise ValueError('Please provide two dimensions.')
else:
pass
def plotLand(a,b):
if(a==b):
print(a)
return a
if(a<b):
c=b%a
b = c if(c!=0) else a
else:
c = a%b
a = c if (c!=0) else b
plotLand(a,b)
result = plotLand(int(sys.argv[1]),int(sys.argv[2]))
print(result)
我添加了print(a)
只是为了检查我的函数是否正在返回一个值。 我以这种方式在 linux 终端中调用此文件:
python algorithms.py 1680 64
这是我的输出:
80
None
我的递归函数中的打印函数正在打印值,但我没有得到函数的返回值。 正如我之前提到的,原始功能没有打印功能。
递归函数的工作方式与非递归函数完全一样——如果你不写return
和一个值,你将返回None
,并且只有当a == b
时才返回任何内容。
你需要
return plotLand(a,b)
我还认为您可以将代码缩短为
def plotLand(a,b):
small, large = sorted((a,b))
remainder = large % small
return plotLand(remainder, small) if remainder else a
你只返回一个条件。 可以考虑在函数末尾添加一个默认值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.