2017-01-15 11 views
-2

この質問は私のPython試験で出てきて、私はそれに答えることができませんでした。シンプルな「DefとIf」は私が把握できなかった

x = 7 
y = 3 
def a(x): 
    return b(x) 
def b(y): 
    if y == 6: 
     return x - y 
    return a(x-1) 
print(a(4)) 

答えは1 あるしかし、私はそれが導出されるかどうかはわかりません。

誰かが私に明確な説明を与えることを望みます。前もって感謝します。

答えて

0

呼び出し手順は次のとおりです。

a(4) 
b(4) 
a(6) 
b(6) # returns 7 - 6 = 1 
0

我々はコードからノイズを除去した場合:

機能abのためだけの別名である、我々は完全にaを削除することができます

x = 7 
y = 3 
def b(y): 
    if y == 6: 
     return x - y 
    return b(x - 1) 
print(b(4)) 

パラメータの名前をprop erly変数や関数のパラメータを区別:

x = 7 
y = 3 
def b(paramY): 
    if paramY == 6: 
     return x - paramY 
    return b(x - 1) 
print(b(4)) 

または

def b(paramY): 
    if paramY == 6: 
     return 7 - paramY 
    return b(7 - 1) 
print(b(4)) 

または今

def b(paramY): 
    if paramY == 6: 
     return 7 - paramY 
    return b(6) 
print(b(4)) 

、あなたが機能気づく場合:

  • paramY場合は6あるが、 7 - paramY、つまり7 - 6、つまり1が返されます。
  • paramY6でない場合、b(6)を返します。つまり、1も返します。

関数bに渡すものは問題ではなく、常に1を返します。

関連する問題