我正在学习Python并使用3.3版本。
我发现了一个我无法理解的“返回”问题。
案例1.确定案例,当“return”按预期返回值时。
def switch(a,b):
print ("inputed values:", "a is",a, ", b is",b)
if b==0:
print (a)
return a
elif b>a:
switch(b,a)
print(switch(15,0))
执行时:
输入值:a为15,b为0
15
15
案例2.问题的情况是,当“返回”返回“无”时,尽管“打印”会打印该值。
def switch(a,b):
print ("inputed values:", "a is",a, ", b is",b)
if b==0:
print (a)
return a
elif b>a:
switch(b,a)
print(switch(0,15))
执行时:
输入值:a为0,b为15
输入值:a为15,b为0
15
无
两种情况之间的区别在于,在执行第二个“elif”分支时,将切换值并使用切换值再次调用该函数。但在第二种情况下,返回是“无”。 为什么在第二种情况下它不会返回“a”值?
答案 0 :(得分:3)
在切换第二个if语句
之前添加一个return语句return switch(b,a)
switch方法返回一个但缺少的return语句意味着不返回switch
语句返回的值,因此返回默认的None
。