1652450700
この記事では、グローバル変数の基本を学びます。
まず、Pythonで変数を宣言する方法と、「変数スコープ」という用語が実際に何を意味するかを学習します。
次に、ローカル変数とグローバル変数の違いを学び、グローバル変数の定義方法とglobal
キーワードの使用方法を理解します。
変数はストレージコンテナと考えることができます。
これらは、コンピュータのメモリに保存したいデータ、情報、および値を保持するためのストレージコンテナです。その後、プログラムの存続期間中のある時点でそれらを参照したり、操作したりすることもできます。
変数にはシンボリック名があり、その名前は、その識別子として機能するストレージコンテナのラベルと考えることができます。
変数名は、その中に格納されているデータへの参照とポインターになります。したがって、データと情報の詳細を覚えておく必要はありません。そのデータと情報を保持する変数名を参照するだけで済みます。
変数に名前を付けるときは、変数が保持するデータを説明していることを確認してください。変数名は、将来の自分自身と一緒に作業する可能性のある他の開発者の両方にとって、明確で簡単に理解できる必要があります。
それでは、Pythonで実際に変数を作成する方法を見てみましょう。
Pythonで変数を宣言するときは、データ型を指定する必要はありません。
たとえば、Cプログラミング言語では、変数が保持するデータの型を明示的に指定する必要があります。
したがって、整数またはint
型である年齢を格納したい場合、これはCで行う必要があることです。
#include <stdio.h>
int main(void)
{
int age = 28;
// 'int' is the data type
// 'age' is the name
// 'age' is capable of holding integer values
// positive/negative whole numbers or 0
// '=' is the assignment operator
// '28' is the value
}
ただし、これはPythonで上記を記述する方法です。
age = 28
#'age' is the variable name, or identifier
# '=' is the assignment operator
#'28' is the value assigned to the variable, so '28' is the value of 'age'
変数名は常に左側にあり、代入する値は代入演算子の後に右側に配置されます。
プログラムの存続期間中、変数の値を変更できることに注意してください。
my_age = 28
print(f"My age in 2022 is {my_age}.")
my_age = 29
print(f"My age in 2023 will be {my_age}.")
#output
#My age in 2022 is 28.
#My age in 2023 will be 29.
同じ変数名を保持しますが、値をからにmy_age
変更するだけです。2829
変数スコープとは、変数が利用可能で、アクセス可能で、表示可能なPythonプログラムの部分と境界を指します。
Python変数のスコープには4つのタイプがあり、 LEGBルールとも呼ばれます。
この記事の残りの部分では、グローバルスコープを使用した変数の作成について学習することに焦点を当て、ローカル変数スコープとグローバル変数スコープの違いを理解します。
関数の本体内で定義された変数にはローカルスコープがあります。つまり、その特定の関数内でのみアクセスできます。言い換えれば、それらはその関数に対して「ローカル」です。
ローカル変数にアクセスするには、関数を呼び出す必要があります。
def learn_to_code():
#create local variable
coding_website = "freeCodeCamp"
print(f"The best place to learn to code is with {coding_website}!")
#call function
learn_to_code()
#output
#The best place to learn to code is with freeCodeCamp!
関数の本体の外部からローカルスコープを使用してその変数にアクセスしようとするとどうなるかを見てください。
def learn_to_code():
#create local variable
coding_website = "freeCodeCamp"
print(f"The best place to learn to code is with {coding_website}!")
#try to print local variable 'coding_website' from outside the function
print(coding_website)
#output
#NameError: name 'coding_website' is not defined
NameError
プログラムの残りの部分では「表示」されないため、aが発生します。定義された関数内でのみ「表示」されます。
ファイルの先頭など、関数の外部で変数を定義すると、その変数はグローバルスコープを持ち、グローバル変数と呼ばれます。
グローバル変数は、プログラムのどこからでもアクセスできます。
関数の本体内で使用することも、関数の外部からアクセスすることもできます。
#create a global variable
coding_website = "freeCodeCamp"
def learn_to_code():
#access the variable 'coding_website' inside the function
print(f"The best place to learn to code is with {coding_website}!")
#call the function
learn_to_code()
#access the variable 'coding_website' from outside the function
print(coding_website)
#output
#The best place to learn to code is with freeCodeCamp!
#freeCodeCamp
グローバル変数とローカル変数があり、両方が同じ名前の場合はどうなりますか?
#global variable
city = "Athens"
def travel_plans():
#local variable with the same name as the global variable
city = "London"
print(f"I want to visit {city} next year!")
#call function - this will output the value of local variable
travel_plans()
#reference global variable - this will output the value of global variable
print(f"I want to visit {city} next year!")
#output
#I want to visit London next year!
#I want to visit Athens next year!
上記の例では、その特定の出力を期待していなかった可能性があります。
city
関数内で別の値を割り当てたときに、の値が変わると思ったかもしれません。
たぶん、私が行でグローバル変数を参照したときprint(f" I want to visit {city} next year!")
、出力は#I want to visit London next year!
の代わりになると予想しました#I want to visit Athens next year!
。
ただし、関数が呼び出されると、ローカル変数の値が出力されます。
次に、関数の外部でグローバル変数を参照すると、グローバル変数に割り当てられた値が出力されました。
彼らはお互いに干渉しませんでした。
ただし、グローバル変数とローカル変数に同じ変数名を使用することは、ベストプラクティスとは見なされません。プログラムを実行すると混乱する結果が生じる可能性があるため、変数の名前が同じでないことを確認してください。
global
グローバル変数があり、関数内でその値を変更したい場合はどうなりますか?
私がそれをしようとすると何が起こるか見てください:
#global variable
city = "Athens"
def travel_plans():
#First, this is like when I tried to access the global variable defined outside the function.
# This works fine on its own, as you saw earlier on.
print(f"I want to visit {city} next year!")
#However, when I then try to re-assign a different value to the global variable 'city' from inside the function,
#after trying to print it,
#it will throw an error
city = "London"
print(f"I want to visit {city} next year!")
#call function
travel_plans()
#output
#UnboundLocalError: local variable 'city' referenced before assignment
デフォルトでは、Pythonは関数内でローカル変数を使用したいと考えています。
そのため、最初に変数の値を出力してから、アクセスしようとしている変数に値を再割り当てしようとすると、Pythonが混乱します。
関数内のグローバル変数の値を変更する方法は、次のglobal
キーワードを使用することです。
#global variable
city = "Athens"
#print value of global variable
print(f"I want to visit {city} next year!")
def travel_plans():
global city
#print initial value of global variable
print(f"I want to visit {city} next year!")
#assign a different value to global variable from within function
city = "London"
#print new value
print(f"I want to visit {city} next year!")
#call function
travel_plans()
#print value of global variable
print(f"I want to visit {city} next year!")
global
次のエラーが発生するため、関数でキーワードを参照する前にキーワードを使用してくださいSyntaxError: name 'city' is used prior to global declaration
。
以前、関数内で作成された変数はローカルスコープを持っているため、それらにアクセスできないことを確認しました。
global
キーワードは、関数内で宣言された変数の可視性を変更します。
def learn_to_code():
global coding_website
coding_website = "freeCodeCamp"
print(f"The best place to learn to code is with {coding_website}!")
#call function
learn_to_code()
#access variable from within the function
print(coding_website)
#output
#The best place to learn to code is with freeCodeCamp!
#freeCodeCamp
そして、あなたはそれを持っています!これで、Pythonのグローバル変数の基本を理解し、ローカル変数とグローバル変数の違いを理解できます。
この記事がお役に立てば幸いです。
基本から始めて、インタラクティブで初心者に優しい方法で学びます。また、最後に5つのプロジェクトを構築して実践し、学んだことを強化するのに役立てます。
読んでくれてありがとう、そして幸せなコーディング!
ソース:https ://www.freecodecamp.org/news/python-global-variables-examples/
1652450700
この記事では、グローバル変数の基本を学びます。
まず、Pythonで変数を宣言する方法と、「変数スコープ」という用語が実際に何を意味するかを学習します。
次に、ローカル変数とグローバル変数の違いを学び、グローバル変数の定義方法とglobal
キーワードの使用方法を理解します。
変数はストレージコンテナと考えることができます。
これらは、コンピュータのメモリに保存したいデータ、情報、および値を保持するためのストレージコンテナです。その後、プログラムの存続期間中のある時点でそれらを参照したり、操作したりすることもできます。
変数にはシンボリック名があり、その名前は、その識別子として機能するストレージコンテナのラベルと考えることができます。
変数名は、その中に格納されているデータへの参照とポインターになります。したがって、データと情報の詳細を覚えておく必要はありません。そのデータと情報を保持する変数名を参照するだけで済みます。
変数に名前を付けるときは、変数が保持するデータを説明していることを確認してください。変数名は、将来の自分自身と一緒に作業する可能性のある他の開発者の両方にとって、明確で簡単に理解できる必要があります。
それでは、Pythonで実際に変数を作成する方法を見てみましょう。
Pythonで変数を宣言するときは、データ型を指定する必要はありません。
たとえば、Cプログラミング言語では、変数が保持するデータの型を明示的に指定する必要があります。
したがって、整数またはint
型である年齢を格納したい場合、これはCで行う必要があることです。
#include <stdio.h>
int main(void)
{
int age = 28;
// 'int' is the data type
// 'age' is the name
// 'age' is capable of holding integer values
// positive/negative whole numbers or 0
// '=' is the assignment operator
// '28' is the value
}
ただし、これはPythonで上記を記述する方法です。
age = 28
#'age' is the variable name, or identifier
# '=' is the assignment operator
#'28' is the value assigned to the variable, so '28' is the value of 'age'
変数名は常に左側にあり、代入する値は代入演算子の後に右側に配置されます。
プログラムの存続期間中、変数の値を変更できることに注意してください。
my_age = 28
print(f"My age in 2022 is {my_age}.")
my_age = 29
print(f"My age in 2023 will be {my_age}.")
#output
#My age in 2022 is 28.
#My age in 2023 will be 29.
同じ変数名を保持しますが、値をからにmy_age
変更するだけです。2829
変数スコープとは、変数が利用可能で、アクセス可能で、表示可能なPythonプログラムの部分と境界を指します。
Python変数のスコープには4つのタイプがあり、 LEGBルールとも呼ばれます。
この記事の残りの部分では、グローバルスコープを使用した変数の作成について学習することに焦点を当て、ローカル変数スコープとグローバル変数スコープの違いを理解します。
関数の本体内で定義された変数にはローカルスコープがあります。つまり、その特定の関数内でのみアクセスできます。言い換えれば、それらはその関数に対して「ローカル」です。
ローカル変数にアクセスするには、関数を呼び出す必要があります。
def learn_to_code():
#create local variable
coding_website = "freeCodeCamp"
print(f"The best place to learn to code is with {coding_website}!")
#call function
learn_to_code()
#output
#The best place to learn to code is with freeCodeCamp!
関数の本体の外部からローカルスコープを使用してその変数にアクセスしようとするとどうなるかを見てください。
def learn_to_code():
#create local variable
coding_website = "freeCodeCamp"
print(f"The best place to learn to code is with {coding_website}!")
#try to print local variable 'coding_website' from outside the function
print(coding_website)
#output
#NameError: name 'coding_website' is not defined
NameError
プログラムの残りの部分では「表示」されないため、aが発生します。定義された関数内でのみ「表示」されます。
ファイルの先頭など、関数の外部で変数を定義すると、その変数はグローバルスコープを持ち、グローバル変数と呼ばれます。
グローバル変数は、プログラムのどこからでもアクセスできます。
関数の本体内で使用することも、関数の外部からアクセスすることもできます。
#create a global variable
coding_website = "freeCodeCamp"
def learn_to_code():
#access the variable 'coding_website' inside the function
print(f"The best place to learn to code is with {coding_website}!")
#call the function
learn_to_code()
#access the variable 'coding_website' from outside the function
print(coding_website)
#output
#The best place to learn to code is with freeCodeCamp!
#freeCodeCamp
グローバル変数とローカル変数があり、両方が同じ名前の場合はどうなりますか?
#global variable
city = "Athens"
def travel_plans():
#local variable with the same name as the global variable
city = "London"
print(f"I want to visit {city} next year!")
#call function - this will output the value of local variable
travel_plans()
#reference global variable - this will output the value of global variable
print(f"I want to visit {city} next year!")
#output
#I want to visit London next year!
#I want to visit Athens next year!
上記の例では、その特定の出力を期待していなかった可能性があります。
city
関数内で別の値を割り当てたときに、の値が変わると思ったかもしれません。
たぶん、私が行でグローバル変数を参照したときprint(f" I want to visit {city} next year!")
、出力は#I want to visit London next year!
の代わりになると予想しました#I want to visit Athens next year!
。
ただし、関数が呼び出されると、ローカル変数の値が出力されます。
次に、関数の外部でグローバル変数を参照すると、グローバル変数に割り当てられた値が出力されました。
彼らはお互いに干渉しませんでした。
ただし、グローバル変数とローカル変数に同じ変数名を使用することは、ベストプラクティスとは見なされません。プログラムを実行すると混乱する結果が生じる可能性があるため、変数の名前が同じでないことを確認してください。
global
グローバル変数があり、関数内でその値を変更したい場合はどうなりますか?
私がそれをしようとすると何が起こるか見てください:
#global variable
city = "Athens"
def travel_plans():
#First, this is like when I tried to access the global variable defined outside the function.
# This works fine on its own, as you saw earlier on.
print(f"I want to visit {city} next year!")
#However, when I then try to re-assign a different value to the global variable 'city' from inside the function,
#after trying to print it,
#it will throw an error
city = "London"
print(f"I want to visit {city} next year!")
#call function
travel_plans()
#output
#UnboundLocalError: local variable 'city' referenced before assignment
デフォルトでは、Pythonは関数内でローカル変数を使用したいと考えています。
そのため、最初に変数の値を出力してから、アクセスしようとしている変数に値を再割り当てしようとすると、Pythonが混乱します。
関数内のグローバル変数の値を変更する方法は、次のglobal
キーワードを使用することです。
#global variable
city = "Athens"
#print value of global variable
print(f"I want to visit {city} next year!")
def travel_plans():
global city
#print initial value of global variable
print(f"I want to visit {city} next year!")
#assign a different value to global variable from within function
city = "London"
#print new value
print(f"I want to visit {city} next year!")
#call function
travel_plans()
#print value of global variable
print(f"I want to visit {city} next year!")
global
次のエラーが発生するため、関数でキーワードを参照する前にキーワードを使用してくださいSyntaxError: name 'city' is used prior to global declaration
。
以前、関数内で作成された変数はローカルスコープを持っているため、それらにアクセスできないことを確認しました。
global
キーワードは、関数内で宣言された変数の可視性を変更します。
def learn_to_code():
global coding_website
coding_website = "freeCodeCamp"
print(f"The best place to learn to code is with {coding_website}!")
#call function
learn_to_code()
#access variable from within the function
print(coding_website)
#output
#The best place to learn to code is with freeCodeCamp!
#freeCodeCamp
そして、あなたはそれを持っています!これで、Pythonのグローバル変数の基本を理解し、ローカル変数とグローバル変数の違いを理解できます。
この記事がお役に立てば幸いです。
基本から始めて、インタラクティブで初心者に優しい方法で学びます。また、最後に5つのプロジェクトを構築して実践し、学んだことを強化するのに役立てます。
読んでくれてありがとう、そして幸せなコーディング!
ソース:https ://www.freecodecamp.org/news/python-global-variables-examples/