1

私は最近プログラミングを始め、Python から始めました。私の質問は、関数の結果を別の関数で使用するにはどうすればよいですか?

def eklid(p, a, b,):
    x = [1, 0]
    y = [0, 1]
    r = [a, b]
    q = [0]
    n = 0
    while r[n+1] != 0:
        q.append(r[n] // r[n+1])
        r.append(r[n] % r[n+1])
        x.append(x[n] - x[n+1] * q[n+1])
        y.append(y[n] - y[n+1] * q[n+1])

        if p == 0:
            print(r[n], "=", r[n+1], "*", q[n+1], "+", r[n+2])
        elif p == 1:    # extended print
            print(r[n+2], "\t", x[n+2], "\t", y[n+2], "\t", r[n+2], "=", a, "*", x[n+2], "+", b, "*", y[n+2])
        elif p == -1:
            k =1
        else:
            print("wrong input")
        n += 1
    return x, y, r, q, n,

私はこの関数を持っていて、この関数で使用しeklid()たいと思います:xr

def cong_solv(x, r, b,):
    result = x/r
    int_result = int(result)
    return int_result

どうやってやるの?

4

4 に答える 4

2
# Here, a=x, b=y, c=r, d=q, e=n
a, b, c, d, e = eklid(h, i, k)

# Assuming based on your function definitions you want the
# same value as the third argument
final_result = cong_solv(a, c, k)

から戻り値を取得し、eklid変数に保存します。次に、これらの変数を使用して次の関数を呼び出します。

もちろん、実際のコードでは、この例よりも適切に変数名を付ける必要があります。その必要がないことを示すために、意図的に関数内と同じ名前で変数を呼び出さないようにしました。

于 2013-10-08T19:53:09.310 に答える
0

Python では、複数の変数を返すと、タプルが返されます。インデックス (returned_value[0]、returned_value[1]) で値を取得するか、Mike Driscoll が言ったようにタプルをアンパックできます (a、b、c、d = eklid(h、i、k))。

私は 2 つの反対票を獲得したので、より良い説明を (できれば) 行います。複数の値を返すたびに、タプルが返されます。

def my_function():
   a = 10
   b = 20
   return a, b

print type(my_function()) # <type 'tuple'>

ただし、値を 1 つだけ返す場合:

def my_function():
    a = 10
    return a

print type(my_function()) # <type 'int'>

したがって、値を使用したい場合は、次のことができます。

このようなタプル値をアンパックします

a, b = my_function()

このようにして、my_function 内で返すのと同じ順序で戻り値を取得します。

コードを書き直すと、次のように簡単に実行できます。

a, b, c = eklid(10, 20, 30) # it will return a tuple

そして、他の関数を呼び出します:

cong_solv(a, b, 20)

私の正直な意見では、dictを返します。dict を使用すると、値にキー名があるため、明示的にすることができます。

eklid return 関数内:

return d # d = {"what_x_means": x,
         #      "what_y_means": y,
         #      "what_r_means": r,
         #      "what_q_means": q, 
         #      "what_n_means": n}

そのキーを取得します。

d["what_x_means"]
d["what_r_means"]
于 2013-10-08T19:59:54.750 に答える