我已经写了一个函数来确定显示器的高度,给定宽度和格式。如果函数在尝试一行高度值时找不到与给定宽度和格式匹配的值,则该函数将递归操作。如果函数在进入递归之前找到匹配项,那么它就可以工作,但之后它总是返回none,而不是匹配的值对。我很不明白为什么会这样。我是不是缺少了一些原则?你知道吗
def getDisplayDimensions(width,FormatX,FormatY):
Format = float(FormatX)/FormatY
if FormatX < FormatY:
return "illegal format."
for height in range(1,int(width)+1):
if float(width)/height == float(Format):
return width,height
break
elif height == width:
getDisplayDimensions(float(width)-1,FormatX,FormatY)
# example call:
print getDisplayDimensions(801,16,9)
您实际上并没有返回递归调用结果:
添加
return
:如果没有
return
,outer调用将结束并返回默认的None
。你知道吗演示:
相关问题 更多 >
编程相关推荐