私のPython関数は、私が期待している値を返していません。ここMWEは次のとおりです。関数が実行されていません
a = 6
b = 18
c = 0
def random_function(c):
c = b/a
return c
random_function(c)
print(c)
私は、この関数は3を印刷することを期待し、代わりにそれは私がちょうど2.7から3.6に更新しており、これは2.7で働いていた0出力します - 私が間違って何をやっているの?
の下にあなたがここに 'C'という名前の2つの完全に独立変数の持っているように、あなたの関数呼び出しを変更する必要がある - 地元を'random_function()'の中にある変数(実際にはパラメータ)と同じ名前のグローバル変数です。 2つの間に絶対的な接続はありません - 'c'パラメータの値がそのような接続を作成しないので、グローバル' c'を渡します。 – jasonharper
'/'演算子の違いにより、あなたの 'random_function'が何か異なったものを返してきましたが、' print(c) 'は' 0両方ともに。 –
'c 'を関数の先頭に' global c'文でグローバルに宣言します。関数内で作成される変数は、デフォルトではローカルです。より良い選択肢は、戻り値を外側の 'c'変数に明示的に代入することです。 – martineau