再帰関数の Python グローバル変数

ライリー・ライマン

私の数学のクラスでは、Python でプログラムを書くように言われました。パートの 1 つで、シリーズの収束をテストしたいと思います。プログラムを作成しているときに、Python がグローバル変数を処理する方法について根本的に誤解していることに気付きました。このコードを取ります:

def main():

    global n
    n = 1

    def check():

        a = 10
        if n > a: print(n)
        else: n += 1

    check()

main()

このコードは、nまだ定義されていないため失敗しますただし、check()関数内で n を定義することはできません。これは、反復ごとに n を 1 にリセットするだけだからです。この問題の回避策はありますか?

異常な

コメントですでに述べたようにn、ネストされた function 内にあるため、まだグローバル スコープにはありませんcheckあなたは追加する必要がありますglobal nへのcheckグローバルアクセスするには、の範囲nネストされた関数から値を:

def main():   
    global n
    n = 1

    def check():
        global n
        a = 10
        if n > a: print(n)
        else: n += 1

    check() 
main()

@PedrovonHertwigはまた、あなたが必要としない指摘global nmain(使用したい場合は、これを無視し、自分の現在のコンテキストでケースであるnトップレベルの範囲内のどこか)と、そのn中に完全に罰金滞在しているmainのローカルスコープ。次に、globalキーワードをcheckto に置き換えて、ローカル スコープでもグローバル スコープでもなく、 のスコープにあるnonlocal nを使用するように Python に指示するnことができmainます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Python再帰関数

分類Dev

whileループ変数変換の再帰関数[python]

分類Dev

Pythonの再帰関数の戻り値

分類Dev

Pythonの再帰関数呼び出し

分類Dev

Pythonでの再帰(階乗関数)

分類Dev

PythonとCの再帰関数

分類Dev

Python再帰関数の奇妙な動作

分類Dev

再帰関数のPython名前空間

分類Dev

Pythonの関数内のグローバル変数の変更

分類Dev

python scipyfsolve再帰関数

分類Dev

Python再帰階乗関数

分類Dev

Python Turtle:再帰関数

分類Dev

関数内の関数、リスト上のPython再帰

分類Dev

Pythonの「再帰的」関数でグローバル変数をリセットするにはどうすればよいですか?

分類Dev

Pythonの再帰関数のさまざまな変数

分類Dev

再帰関数の可変スコープの問題[Python]

分類Dev

再帰関数のPythonクラス変数

分類Dev

Pythonの再帰的多変数ラムダ関数

分類Dev

再帰的にPython関数内で変数の値を渡す

分類Dev

Pythonのグローバル変数警告

分類Dev

Python関数のグローバル変数?

分類Dev

関数内のPythonグローバル変数

分類Dev

関数でPythonのグローバル変数を使用する

分類Dev

再帰中にPython変数がグローバルに動作するのはなぜですか?

分類Dev

グローバル変数を使用する場合と使用しない場合のPython再帰

分類Dev

Python Djangoグローバル変数

分類Dev

Python:再帰関数のベースケース

分類Dev

関数を乗算するときのPython再帰エラー

分類Dev

Pythonのグローバル変数に関する問題

Related 関連記事

ホットタグ

アーカイブ