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

Pythonグローバル変数とローカル変数のガイド

変数は、プログラミングにおいて重要で遍在する概念です。変数は、データを格納するためのコンテナーです。変数は、ユーザー名、メールアドレス、ユーザーのオンラインゲームインベントリ内のアイテムなど、さまざまな種類のデータを保存できます。

Pythonでプログラミングする場合、グローバル変数とローカル変数の2種類の変数に遭遇します。このガイドでは、これら2種類の変数の違い、それらがどのように機能するか、およびコードでそれらをどのように使用できるかについて説明します。

Python変数

Pythonでは、変数を使用すると、基本的にデータにラベルを付けて保存できます。変数を定義するときは、名前を付けます。その後、コードの後半でその名前を使用して、それが表すデータを取得できます。変数には、文字列、数値、リスト、またはその他のデータ型を格納できます。

ゲームを作成していて、ユーザーの名前を保存したいとします。プログラム全体で名前を入力する代わりに、変数を使用して名前を格納できます。

ゲームのユーザー名を格納する変数は次のとおりです。

name = "Carlton Hernandez"

nameという変数を宣言しました それに値「CarltonHernandez」を割り当てました。

その変数を宣言したので、コードでそれを操作できます。たとえば、ユーザーの名前を変更したい場合は、次のコードを使用して変更できます。

name = "Carlton Hernandez"
name = "Carlton Lewis Hernandez"

コードの最初の行で、値「CarltonHernandez」を nameに割り当てました。 変数。次に、値「CarltonLewisHernandez」を nameに割り当てました。 変数。変数に新しい値を割り当てると、プログラムは最新の値を上書きして、新しい値に置き換えます。

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

Pythonグローバル変数

Pythonには、ローカルとグローバルの2つの主要なタイプの変数があります。

グローバル変数は、関数の外部で宣言された変数です。グローバル変数にはグローバルスコープがあります。これは、関数内を含むプログラム全体でアクセスできることを意味します。この概念の次の視覚的表現を検討してください。

Pythonのグローバル変数とローカル変数

Pythonグローバル変数とローカル変数のガイド

グローバル変数 プログラム全体からアクセスできます。

Pythonのグローバル変数の例を次に示します。

name = "Carlton Hernandez"

グローバル変数を宣言すると、コード全体でそれを使用できます。たとえば、グローバル変数 nameが保持する値を出力する関数を作成できます。 次のコードを使用します:

def printName():
	print(name)

printName()

コードは次のようになります:

"Carlton Hernandez"

ここでは、 printName()という関数を初期化しました。 。この関数を呼び出すと、 nameの値が出力されます。 コンソールへの変数。これは、関数を呼び出したときに上で起こったことです。

Pythonローカル変数

一方、ローカル変数は、関数内で宣言された変数です。これらの変数はローカルスコープを持つことが知られています 。これは、それらが宣言されている関数内でのみアクセスできることを意味します。 Pythonの変数の概念を表す、前に表示したこの視覚的表現をもう一度考えてみましょう。

グローバル変数とローカル変数

Pythonグローバル変数とローカル変数のガイド

ローカル変数 特定の機能内でのみアクセスできます。

以下は、ローカル変数を使用するプログラムの例です。

def printName():
	name = "Georgia Anderson"
	print(name)

printName()

コードは次のようになります:

"Georgia Anderson"

このコードでは、 printName()という関数を宣言しました。 。その関数内で、 nameという変数を定義しました 。この変数は関数内で宣言したため、ローカル変数です。

コードの最後で、 printName()を使用して関数を呼び出しました。 。それに応じて、プログラムは printName()を実行しました 関数。

名前 この例の変数は、 printName()に対してローカルです。 関数。したがって、関数の外部でその変数にアクセスすることはできません。このローカルのnameを印刷しようとすると、次のようになります。 宣言されている関数の外部の変数:

def printName():
	name = "Georgia Anderson"
	print(name)

printName()
print(name)

コードは次のようになります:

NameError: name 'name' is not defined

変数を割り当てた関数の外部でローカル変数にアクセスすることはできません。メインプログラムでローカル変数にアクセスしようとすると、プログラムはエラーを返します。

グローバル変数とローカル変数の使用

プログラムがローカル変数とグローバル変数の両方に同じ変数名を使用することは可能です。このようなシナリオでは、ローカル変数はローカルスコープで読み取られ、グローバル変数はグローバルスコープで読み取られます。

同じ名前のローカル変数とグローバル変数を持つプログラムの例を次に示します。

score = 5

def calculateScore():
	score = 10
	print("Final Score:", score)

calculateScore()
print("Initial Score:", score)

コードは次のようになります:

Final Score: 10
Initial Score: 5

まず、グローバル変数 scoreを割り当てました 私たちのコードで。次に、calculateScore()で 関数、同じ名前のローカル変数を作成しました。

ローカルのスコアの値 calculateScore()の変数 関数は10です。したがって、calculateScore()を呼び出すと 関数、メッセージ Final Score:10 コンソールに出力されます。

ただし、calculateScore()の外部 関数、 scoreの値 変数は5です。これは、 scoreの値を設定したためです。 グローバルスコープの変数は5になります。したがって、初期スコアを出力する場合: 、その後に scoreの値が続きます 変数の場合、プログラムは値5を表示します。

関数内でのグローバル変数の割り当て

上記のセクションでは、グローバル変数が関数の外部(つまり、グローバル)で定義され、ローカル変数が関数の内部(つまり、ローカル)で定義されることを学びました。ただし、 globalを使用する場合 キーワードを使用して、関数内で(つまり、ローカルで)変数を定義し、プログラムでその関数を(グローバルに)実行すると、その変数はグローバル変数になります。

次の例を考えてみましょう:

def setName():
	global name
	name = "Bianca Peterson"

setName()
print(name)

コードは次のようになります:

"Bianca Peterson"

このコードでは、 nameの値を割り当てました。 setName()内のローカル変数 関数。ただし、この変数を定義する前にglobalキーワードを使用したため、 nameを指定する準備をします。 可変グローバルスコープ。ただし、 name 変数はにのみグローバル変数になります この関数はプログラムで実行します。

プログラムが実行された後、 setName() 関数、 nameを使用するときはいつでも print()を実行したときと同じように、プログラムの変数 関数の場合、プログラムはローカル関数で宣言した値を使用します。これは、 name が原因です 変数はグローバル変数になりました。

直接できないと以前に言ったことを思い出してください 関数内のグローバル変数を変更しますか?それは本当です。ただし、globalキーワードを使用して、関数内のグローバル変数を間接的に変更できます。

関数でグローバルキーワードを使用してグローバル変数の値を変更するプログラムの例を次に示します。

name = "Bianca Peterson"

def setName():
	global name
	name = "Bianca Lucinda Peterson"

setName()
print(name)

コードは次のようになります:

"Bianca Lucinda Peterson"

このコードを分解してみましょう。まず、 nameという変数を宣言しました それに値「BiancaPeterson」を割り当てました。これはグローバル変数です。次に、 setName()という関数を宣言しました。 。呼び出されると、 setName() 関数はnameの値を変更します 変数。

次に、 setName()を呼び出しました。 nameの値を変更した関数 「ビアンカルシンダピーターソン」へ。最後に、 nameの値を出力しました コンソールに。グローバル変数nameの値 現在は「ビアンカルシンダピーターソン」です。

一般的に、globalキーワードは慎重に使用する必要があります。 globalキーワードを頻繁に使用すると、プログラム内の変数のスコープを理解するのが難しくなる可能性があります。

結論

グローバル変数は、関数の外部で宣言された変数です。ローカル変数は、関数内で宣言された変数です。

関数内でグローバル変数を直接変更することはできませんが、globalキーワードを使用して、グローバル変数の値を変更する関数を作成できます。この場合、グローバル変数の値は、その関数を実行するまで実際には変更されません。

このチュートリアルでは、例を参照して、ローカル変数とグローバル変数の基本、およびそれらがどのように機能するかについて説明しました。これで、プロのプログラマーのようにPythonコードでローカル変数とグローバル変数を使用する準備が整いました。


  1. Pythonの名前空間とスコープ

    Pythonでは、変数、関数、ライブラリ、モジュールなどを扱います。使用する変数の名前が、別の変数の名前として、または別の関数や別のメソッドの名前としてすでに存在している可能性があります。このようなシナリオでは、これらすべての名前がPythonプログラムによってどのように管理されているかを知る必要があります。これが名前空間の概念です。 以下は名前空間の3つのカテゴリです ローカル名前空間:プログラムによって宣言された関数と変数のすべての名前は、この名前空間に保持されます。この名前空間は、プログラムが実行されている限り存在します。 グローバル名前空間:この名前空間は、Pytho

  2. Bash 変数チュートリアル – 6 つの実用的な Bash グローバル変数とローカル変数の例

    この記事は、進行中の bash チュートリアル シリーズの一部です。他のプログラミング言語と同様に、Bash にも変数が用意されています。 Bash 変数は、プログラムの存続期間中に必要となる情報を一時的に格納します。構文: VARNAME=VALUE 注: 変数の割り当てでは、「=」記号の周りにスペースを入れないでください。 VAR=VALUE を使用すると、シェルは「=」を記号として認識し、コマンドを変数割り当てとして扱います。 VAR =VALUE を使用すると、シェルは VAR がコマンドの名前であると想定し、それを実行しようとします。 シェルは変数の型を気にしません。変数には、