Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonプログラムのグローバルキーワード


変数を宣言することもありますが、現在のプログラムのどこにあっても、その宣言の現在のスコープ外の値を変更またはアクセスする必要がある場合があります。このようなシナリオでは、変数が宣言されている関数内で変数名とともにGlobalキーワードを使用します。変数が関数内にない場合、スコープは自動的にグローバルになります。

関数外の変数

以下の例では、関数の外部に値が表示されていますが、関数の内部から値にアクセスできます。そのような変数はすでにスコープ内でグローバルであるためです。

x = 56
def func():
y = x *2
   return y
print(func())

上記のコードを実行すると、次の結果が得られます。

出力

112

関数内の変数

次の例では、関数内の変数の値を変更しようとすると、エラーが発生します。

x = 56
def func():
   y = x *2
   x = x+2
      return y
print(func())

上記のコードを実行すると、次の結果が得られます。

出力

nboundLocalError: local variable 'x' referenced before assignment

関数内でグローバルスコープを持つ変数の値を変更できる唯一の方法は、関数内でグローバル変数として宣言することです。

x = 56
def func():
global x
   x = x + 2
   y = x *2
      return y
print(func())

上記のコードを実行すると、次の結果が得られます

出力

116

入れ子関数内の変数

入れ子関数の場合、以下の例に示すように、最も内側の関数にグローバル変数を作成します。

def func_out():
   x = 56
   def func_in():
      global x
      x = 20
      print("x is: ",x)
      x = x + 3
      y = x *2
      print ("y is: ",y)
   func_in()
func_out()
print("x is: ",x)

上記のコードを実行すると、次の結果が得られます。

出力

x is: 20
y is: 46
x is: 23

  1. 指定された文字列がキーワードであるかどうかを確認するPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −数値が与えられているので、その数値が2の累乗であるかどうかを確認する必要があります。 キーワードは、特定の用途で任意の言語によって予約されている特別な単語であり、識別子として使用することはできません。 指定された文字列がキーワードであるかどうかを確認するために、以下で説明するようにキーワードモジュールを使用しました。 例 # keyword module import keyword # Function def isKeyword(word) :    # list of all

  2. クイックソート用のPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列が与えられたので、クイックソートの概念を使用して配列を並べ替える必要があります ここでは、最初に配列をパーティション化し、別のパーティションを並べ替えて、並べ替えられた配列を取得します。 次に、以下の実装のソリューションを見てみましょう- 例 # divide function def partition(arr,low,high):    i = ( low-1 )    pivot = arr[high] # pivot element   &nb