Python 3で変数を使用する方法

前書き

Variablesは、習得するための重要なプログラミング概念です。 これらは基本的に、プログラムで使用している値を表すシンボルです。

このチュートリアルでは、いくつかの変数の基本と、作成するPython 3プログラム内でそれらを最適に使用する方法について説明します。

変数を理解する

技術的には、変数は、シンボル名または識別子に関連付けられた値に保存場所を割り当てます。 変数名は、コンピュータープログラム内の保存された値を参照するために使用されます。

変数は、値が関連付けられている名前の付いたラベルと考えることができます。

Variables in Python

整数103204934813があり、長い数値を何度も繰り返し入力するのではなく、変数に格納したいとします。 代わりに、変数my_intのような覚えやすいものを使用しましょう。

my_int = 103204934813

値に関連付けられたラベルのように考えると、次のようになります。

Python Variable Example

ラベルには変数名my_intが書き込まれ、整数値103204934813に関連付けられています。

フレーズmy_int = 103204934813assignment statementであり、いくつかの部分で構成されています。

  • 変数名(my_int

  • assignment operator、等号(=)とも呼ばれます

  • 変数名に関連付けられている値(103204934813

これらの3つの部分が一緒になって、変数my_intを整数103204934813の値に等しく設定するステートメントを構成します。

変数を値に設定するとすぐに、initializeまたはその変数を作成します。 それが完了すると、値の代わりに変数を使用するように設定されます。 Pythonでは、一部のプログラミング言語のように、変数を使用する前に明示的に宣言する必要はありません。変数の使用をすぐに開始できます。

my_int103204934813の値と等しく設定するとすぐに、整数の代わりに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

変数x76145の合計に等しく設定されたため、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_intMY_INTMy_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つの単一の値を複数の変数に同時に割り当てることができます。 これにより、複数の変数を一度に初期化できます。これらの変数は、プログラム内で後から、またはユーザー入力を通じて再割り当てできます。

複数の割り当てにより、変数xy、およびzを整数0の値に設定できます。

x = y = z = 0
print(x)
print(y)
print(z)
Output0
0
0

この例では、3つの変数(xy、および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 variablesfunctionsの外部に存在します。 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のローカル変数は関数内でローカルに割り当てられるため、その関数を呼び出すと、num110のローカル値と等しいと見なされます。 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)

変数sharknew_shark()関数内でローカルに割り当てられましたが、関数内で変数を割り当てる前にglobalステートメントが使用されているため、関数の外部からアクセスできます。 そのglobalステートメントにより、関数の外部でprint(shark)を呼び出しても、エラーは発生しません。 canは関数内でグローバル変数を割り当てますが、これを頻繁に行う必要はない可能性が高く、読み取り可能なコードの側でエラーが発生するはずです。

他に留意すべきことは、値を割り当てずに関数内の変数を参照すると、その変数は暗黙的にグローバルになるということです。 ローカル変数を持つためには、関数の本体内で値を割り当てる必要があります。

変数を使用する場合、グローバル変数またはローカル変数を使用する方が適切かどうかを判断することが重要です。 通常は変数をローカルに保持するのが最善ですが、複数の関数で同じ変数を使用している場合は、グローバル変数を初期化することができます。 1つの関数または1つのclass内でのみ変数を操作している場合は、代わりにローカル変数を使用することをお勧めします。

結論

このチュートリアルでは、Python 3内の変数の一般的な使用例をいくつか紹介しました。 変数はプログラミングの重要な構成要素であり、プログラムで使用しているdata typeの値を表すシンボルとして機能します。