前書き
Variablesは、習得するための重要なプログラミング概念です。 これらは基本的に、プログラムで使用している値を表すシンボルです。
このチュートリアルでは、いくつかの変数の基本と、作成するPython 3プログラム内でそれらを最適に使用する方法について説明します。
変数を理解する
技術的には、変数は、シンボル名または識別子に関連付けられた値に保存場所を割り当てます。 変数名は、コンピュータープログラム内の保存された値を参照するために使用されます。
変数は、値が関連付けられている名前の付いたラベルと考えることができます。
整数103204934813
があり、長い数値を何度も繰り返し入力するのではなく、変数に格納したいとします。 代わりに、変数my_int
のような覚えやすいものを使用しましょう。
my_int = 103204934813
値に関連付けられたラベルのように考えると、次のようになります。
ラベルには変数名my_int
が書き込まれ、整数値103204934813
に関連付けられています。
フレーズmy_int = 103204934813
はassignment statementであり、いくつかの部分で構成されています。
-
変数名(
my_int
) -
assignment operator、等号(
=
)とも呼ばれます -
変数名に関連付けられている値(
103204934813
)
これらの3つの部分が一緒になって、変数my_int
を整数103204934813
の値に等しく設定するステートメントを構成します。
変数を値に設定するとすぐに、initializeまたはその変数を作成します。 それが完了すると、値の代わりに変数を使用するように設定されます。 Pythonでは、一部のプログラミング言語のように、変数を使用する前に明示的に宣言する必要はありません。変数の使用をすぐに開始できます。
my_int
を103204934813
の値と等しく設定するとすぐに、整数の代わりにmy_int
を使用できるので、出力してみましょう。
print(my_int)
Output103204934813
変数を使用すると、mathをすばやく簡単に実行できます。 my_int = 1040
を使用して、整数値813を減算しましょう。
print(my_int - 813)
Output103204934000
この例では、Pythonが計算を行い、変数my_int
から813を減算して、合計103204934000
を返します。
数学といえば、変数は数学方程式の結果に等しく設定できます。 2つの数値を足し合わせて、その合計の値を変数x
に格納しましょう。
x = 76 + 145
上記の例は、すでに慣れ親しんでいる代数のように見えるかもしれません。 代数では、変数がデータ型の値を表すシンボリック名のように、文字や他の記号を使用して数式や方程式内の数値や数量を表します。 正しいPython構文を得るには、変数が方程式の左側にあることを確認する必要があります。
先に進んで、x
を出力しましょう:
print(x)
Output221
変数x
が76
と145
の合計に等しく設定されたため、Pythonは値221
を返しました。
変数は、整数だけでなく、任意のデータ型を表すことができます。
my_string = 'Hello, World!'
my_flt = 45.06
my_bool = 5 > 9 #A Boolean value will return either True or False
my_list = ['item_1', 'item_2', 'item_3', 'item_4']
my_tuple = ('one', 'two', 'three')
my_dict = {'letter': 'g', 'number': 'seven', 'symbol': '&'}
上記の変数のいずれかを出力すると、Pythonはその変数と同等のものを返します。 たとえば、上記のlist data typeの代入ステートメントを使用してみましょう。
my_list = ['item_1', 'item_2', 'item_3', 'item_4']
print(my_list)
Output['item_1', 'item_2', 'item_3', 'item_4']
['item_1', 'item_2', 'item_3', 'item_4']
のリスト値を変数my_list
に渡し、print()
関数を使用して、my_list
を呼び出してその値を出力しました。
変数は、コンピューター内のメモリの小さな領域を切り出すことで機能します。この領域は、指定された値を受け入れ、その領域に関連付けられます。
変数の命名:ルールとスタイル
変数の命名は非常に柔軟ですが、留意する必要があるいくつかのルールがあります。
-
変数名は1語のみである必要があります(スペースなしなど)
-
変数名は、文字、数字、およびアンダースコア(
_
)のみで構成する必要があります。 -
変数名は数字で始めることはできません
上記のルールに従って、有効な変数名と無効な変数名の両方を見てみましょう。
有効 | 無効 | なぜ無効なのか |
---|---|---|
my_int |
my-int |
ハイフンは許可されていません |
int4 |
4int |
数字で始めることはできません |
MY_INT |
$MY_INT |
|
another_int |
別のint |
複数の単語にすることはできません |
変数に名前を付けるときに覚えておくべき他のことは、大文字と小文字が区別されることです。つまり、my_int
、MY_INT
、My_Int
、およびmY_iNt
はすべて完全に異なる変数です。 プログラム内で同様の変数名を使用することは避け、現在および将来の共同編集者の両方が変数をまっすぐに保つことができるようにしてください。
最後に、スタイルに関するいくつかの注意事項。 従来、変数に名前を付けるときは、変数を小文字で開始し、単語を区切るときにアンダースコアを使用するのが一般的です。 大文字で始まることは無効ではなく、変数を記述するときにキャメルケースまたは大文字と小文字が混在することを好む人もいますが、これらはあまり一般的ではありません。
従来のスタイル | 型破りなスタイル | なぜ型破りなのか |
---|---|---|
my_int |
myInt |
キャメルケースは従来のものではありません |
int4 |
Int4 |
従来型ではない大文字の最初の文字 |
my_first_string |
myFirstString |
キャメルケースは従来のものではありません |
最も重要なスタイルの選択は、一貫性を保つことです。 変数名にcamelCaseを使用していた既存のプロジェクトで作業を開始する場合、既存のスタイルを引き続き使用することをお勧めします。
PEP 8は公式のPythonコードスタイルガイドであり、Pythonに関して持つ可能性のある多くの文体の質問に対応しています。 一般に、読みやすさと一貫性は、他の文体的な懸念よりも好まれます。
変数の再割り当て
variableという単語が示すように、Python変数は簡単に変更できます。 これは、単純な再割り当てにより、以前に割り当てられた変数に異なる値を非常に簡単に接続できることを意味します。
プログラムの過程を通じて、ユーザーが生成した値を既に初期化された変数に受け入れる必要がある場合や、以前に定義したものに割り当てを変更する必要がある場合があるため、再割り当てができると便利です。
変数を簡単かつ簡単に再割り当てできることを知っていると、他の人が始めた大きなプログラムで作業していて、定義済みのものがまだわからない場合にも役立ちます。
最初にx
を整数として割り当て、次にそれをstringとして再割り当てしましょう。
#Assign x to be an integer
x = 76
print(x)
#Reassign x to be a string
x = "Sammy"
print(x)
Output76
Sammy
上記の例は、最初に変数x
を割り当てて整数の値を割り当て、次に変数x
を再割り当てして今回は文字列の値を割り当てることができることを示しています。
この方法でプログラムを書き直した場合:
x = 76
x = "Sammy"
print(x)
それが最新の割り当てであるため、出力として2番目に割り当てられた値のみを受け取ります。
OutputSammy
変数の再割り当ては場合によっては役立ちますが、コードの読みやすさを認識し、プログラムをできるだけ明確にするように努力する必要があります。
複数の割り当て
Pythonでは、1つの単一の値を複数の変数に同時に割り当てることができます。 これにより、複数の変数を一度に初期化できます。これらの変数は、プログラム内で後から、またはユーザー入力を通じて再割り当てできます。
複数の割り当てにより、変数x
、y
、およびz
を整数0
の値に設定できます。
x = y = z = 0
print(x)
print(y)
print(z)
Output0
0
0
この例では、3つの変数(x
、y
、およびz
)すべてが同じメモリ位置に割り当てられています。 これらはそれぞれ値0に等しくなります。
Pythonでは、同じ行内の複数の変数に複数の値を割り当てることもできます。 これらの各値は、異なるデータ型にすることができます。
j, k, l = "shark", 2.05, 15
print(j)
print(k)
print(l)
Outputshark
2.05
15
上記の例では、変数j
は文字列"shark"
に割り当てられ、変数k
はフロート2.05
に割り当てられ、変数l
は整数15
に割り当てられます。
複数の変数を1行の複数の値に割り当てるこのアプローチにより、コードの行を抑えることができますが、少ないコード行で読みやすさを犠牲にしないようにしてください。
グローバル変数とローカル変数
プログラム内で変数を使用するときは、variable scopeを覚えておくことが重要です。 変数のスコープは、特定のプログラムのコード内でアクセス可能な特定の場所を指します。 つまり、特定のプログラムのすべての部分からすべての変数にアクセスできるわけではありません。一部の変数はグローバルになり、一部の変数はローカルになります。
Global variablesはfunctionsの外部に存在します。 Local variablesは関数内に存在します。
実際のグローバル変数とローカル変数を見てみましょう。
#Create a global variable, outside of a function
glb_var = "global"
#Define a function
def var_function():
lcl_var = "local" #Create a local variable, inside function
print(lcl_var)
#Call function to print local variable
var_function()
#Print global variable outside function
print(glb_var)
Outputlocal
global
上記のプログラムは、グローバル変数glb_var
を関数の外部に割り当ててから、関数var_function()
を定義します。 関数内では、lcl_var
というローカル変数が割り当てられ、出力されます。 プログラムは、var_function()
を呼び出してから、glb_var
を出力することで終了します。
glb_var
はグローバル変数であるため、var_function()
で参照できます。 上記の小さなプログラムを変更して、それを行いましょう。
glb_var = "global"
def var_function():
lcl_var = "local"
print(lcl_var)
print(glb_var) #Print glb_var within function
var_function()
print(glb_var)
Outputlocal
global
global
これで、グローバル変数glb_var
が関数と関数の外部の両方で出力されるため、2回出力されます。
関数の外部でローカル変数を呼び出そうとした場合はどうなりますか?
glb_var = "global"
def var_function():
lcl_var = "local"
print(lcl_var)
print(lcl_var)
OutputNameError: name 'lcl_var' is not defined
割り当てられている関数の外部でローカル変数を使用することはできません。 そうしようとすると、代わりにNameError
を受け取ります。
グローバル変数とローカル変数に同じ変数名を使用する別の例を見てみましょう。
num1 = 5 #Global variable
def my_function():
num1 = 10 #Use the same variable name num1
num2 = 7 #Assign local variable
print(num1) #Print local variable num1
print(num2) #Print local variable num2
#Call my_function()
my_function()
#Print global variable num1
print(num1)
Output10
7
5
num1
のローカル変数は関数内でローカルに割り当てられるため、その関数を呼び出すと、num1
は10
のローカル値と等しいと見なされます。 my_function()
を呼び出した後にnum1
のグローバル値を出力すると、グローバル変数num1
がまだ5
の値に等しいことがわかります。
Pythonのglobal
ステートメントを使用して、関数内でグローバル変数を割り当てることができます。
def new_shark():
#Assign variable as global
global shark
shark = "Sammy"
#Call new_shark() function
new_shark()
#Print global variable shark
print(shark)
変数shark
はnew_shark()
関数内でローカルに割り当てられましたが、関数内で変数を割り当てる前にglobal
ステートメントが使用されているため、関数の外部からアクセスできます。 そのglobal
ステートメントにより、関数の外部でprint(shark)
を呼び出しても、エラーは発生しません。 canは関数内でグローバル変数を割り当てますが、これを頻繁に行う必要はない可能性が高く、読み取り可能なコードの側でエラーが発生するはずです。
他に留意すべきことは、値を割り当てずに関数内の変数を参照すると、その変数は暗黙的にグローバルになるということです。 ローカル変数を持つためには、関数の本体内で値を割り当てる必要があります。
変数を使用する場合、グローバル変数またはローカル変数を使用する方が適切かどうかを判断することが重要です。 通常は変数をローカルに保持するのが最善ですが、複数の関数で同じ変数を使用している場合は、グローバル変数を初期化することができます。 1つの関数または1つのclass内でのみ変数を操作している場合は、代わりにローカル変数を使用することをお勧めします。
結論
このチュートリアルでは、Python 3内の変数の一般的な使用例をいくつか紹介しました。 変数はプログラミングの重要な構成要素であり、プログラムで使用しているdata typeの値を表すシンボルとして機能します。