我正在学习 Python 并使用 3.3 版本。
我发现了一个我无法理解的“返回”问题。
案例 1. OK 案例,当“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. 问题案例,当“return”返回“None”时,虽然“print”打印了值。
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”值?