私は 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. 「print」は値を出力するが、「return」が「None」を返す場合の問題ケース。
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
なし
2 つのケースの違いは、2 番目の「elif」ブランチが実行されると、値が切り替えられ、切り替えられた値で関数が再度呼び出されることです。しかし、2 番目のケースでは戻り値は「なし」です。2 番目のケースで "a" 値を返さないのはなぜですか?