私はPythonの初心者です。関数呼び出しから戻り値を取得するにはどうすればよいですか? 私は明らかに間違っているこれをやったことがあります。戻り値を上記の変数に代入する必要があります。また、関数から値を返す方法を変更することはできません。タプルのタプルから値を取得する
がtup=(max_left,max_right)
tup1=(tup,left_sum+right_sum)
return tup1
私はPythonの初心者です。関数呼び出しから戻り値を取得するにはどうすればよいですか? 私は明らかに間違っているこれをやったことがあります。戻り値を上記の変数に代入する必要があります。また、関数から値を返す方法を変更することはできません。タプルのタプルから値を取得する
がtup=(max_left,max_right)
tup1=(tup,left_sum+right_sum)
return tup1
すぐ外に囲んでいる括弧ドロップ:
((cross_low,cross_high),cross_sum)=find_maximum_crossing_subarray(A,low,mid,high)
私はfind_maximum_crossing_subarray
関数から値のこの型を返すのです
(cross_low, cross_high), cross_sum = find_maximum_crossing_subarray(A,low,mid,high)
これらのカッコを削除することで、自分のテストコードに違いはありません。 –
それはまったく問題ではありません。それらの括弧は必要ではないが問題ではない –
本当に奇妙な構文ですが、基本的に、あなたはしています戻り値はfind_maximum_crossing_subarray(..)
です。
あなたは、私はまだa
、b
、およびc
へのアクセスを持っていたか
def some_function():
return (1, 2), 3
x = ((a, b), c) = some_function()
print(x, a, b, c)
...
... output:
((1, 2), 3) 1 2 3
お知らせ、簡易版を見ることができます。同様に、変数cross_*
にアクセスすることができます。
何かの最大値を見つける必要がある場合、max
は組み込み関数であり、sum
もあります。
あなたは、私が代わりにこれを行うだろうfind_maximum_crossing_subarray(..)
の戻り署名を変更することができる場合:
# ..
return max_left, max_right, left_sum + right_sum
results = find_maximum(A, low, mid, high)
cross_low, cross_high, cross_sum = results
これは本当に彼らの質問に答えるものではない。確かに、実際に質問に答えるのに十分な情報がまだありません。 –
さて、質問は何ですか?彼は 'cross_low'、' cross_high'と 'cross_sum'にアクセスする必要があります...最初の例は彼がすべてアクセスしていることを示しています。彼はまた、リターンシグネチャを変更することはできないことを意味していますが、それはやや関係がありません。 – blakev
質問は良い質問です。私が言ったように、彼は十分な情報を私たちに与えていない。私たちが知っているのは「これは明らかに間違っています」ですが、コードは実行されるべきであるように見えます。このコードが動作しない理由をデバッグするのに十分な情報がありません。 –
left_sumとright_sumの値は何ですか? max_left、max_right、left_sum、およびright_sumが浮動小数点のテストコードを書くと、エラーは発生せず、すべて正常に動作します。コードを実行するとどうなりますか?間違いはありますか? –
あなたはいくつかのサンプルデータ、あなたが期待するいくつかの入力と出力を提供できますか?特に出力形式は? – MooingRawr
[mcve]にコードをラップしてください。おそらくtypoどこかで –