Python チュートリアル - 変数とデータ型

  1. Python 変数
  2. Python データ型

このセクションでは、Python プログラミングの変数とデータ型を学習します。

Python 変数

変数は、名前と値(一部のデータ)を持つメモリロケーションです。

変数には一意の名前があるため、メモリの場所を区別できます。これらには、識別子の命名規則と同じ命名規則があります。[識別子の命名規則]を確認します(/ja/tutorial/python-3-basic-tutorial/keywords-and-identifiers/)。

Python では、変数を使用する前に変数を宣言する(データ型を指定する)必要はありません。変数を作成する場合は、変数の有効な名前を書き、代入演算子を使用して値を割り当てます。変数のデータ型は、それに割り当てる値の型に従って内部的に定義されます。

変数の割り当て

代入演算子 = は、変数に値を割り当てるために使用されます。任意のタイプの値を変数に割り当てることができます。変数のデータ型は内部的に定義されます。

次のコードは、割り当て演算子を使用してさまざまなデータ型の値を割り当てる方法を示しています。

x = 3
y = 4.124
z = "Python"

ここには、intfloat、および string 変数があります。

複数の割り当て

単一の Python ステートメントで複数の変数に値を割り当てることもできます。これは複数の割り当てと呼ばれます。以下のコードを検討してください。

x, y, z = 2, 4.124, "Python"

ここでは 2 が x に割り当てられ、4.124 が y に割り当てられ、文字列 “Python”が z に割り当てられます。

同じ値を異なる変数に割り当てる場合は、次のように記述できます。

x = y = z = "Blue"

これで、3つの変数はすべて等しくなりました。

警告

上記のような 2つの変数にリストを割り当てることは、良い習慣ではありません。両方/すべてが同じメモリ位置を指しているため、1つの変数によって値が変更されると、他のすべての変数も目立たないように変更されます。これに気付かないと、奇妙な振る舞いに出くわす可能性があります。

Python データ型

変数に値を割り当てるたびに、変数のデータ型も指定されます。Python はオブジェクト指向プログラミングであり、Python のすべてはオブジェクトです箱なし」タイプ。

Python では、変数のデータ型は実際には変数がインスタンス(オブジェクト)であるクラスです。

以下は、Python のデータ型の一部です。

数字

整数、浮動小数点、複素数などの数字は Python の数字です。Python では、整数は int、浮動小数点は float、複素数は complex クラスで表されます。

組み込みの type() 関数を使用して、変数のデータ型または変数が属するクラスを確認できます。

isinstance() 関数は、オブジェクトが特定のクラスのインスタンスまたはそのサブクラスであるかどうかを確認するために使用されます。最初の引数はオブジェクト自体で、2 番目の引数は比較対象のデータ型です。

x = 3
print("type of", x, "is", type(x))
x = 3.23
print("type of", x, "is", type(x))
x = 3+3j
print("is", x, "a complex number:", isinstance(x, complex))
type of 3 is <class 'int'>
type of 3.23 is <class 'float'>
is (3+3j) a complex number: True

リスト

リストは、(異なる)データ型の要素の順序付きシーケンスです。Python で角カッコ [] を使用してリストを作成できます。角カッコ内には、コンマで区切られたリストアイテムがあります。

x = [2, 4.5, "blue"]

リストのメンバーにアクセスするには、Python ではスライス演算子 [] として知られているインデックスアクセス演算子を使用できます。リストの要素のインデックスは 0 から始まります。以下の例を考えてください。

x = [2, 4, 6, 8, 10]
print('x[0] =', x[0])			#displays the first element
print('x[0:2] =', x[0:2])		#displays first two elements of list that is at location 0 and 1
print('x[2:] =', x[2:])			#displays elements from location 2 (third element)
x[0] = 2
x[0:2] = [2, 4]
x[2:] = [6, 8, 10]

Python リストの項目は変更(更新、削除、追加)できます。言い換えれば、Python リストは変更可能です。

注意

リストは変更可能です。

タプル

タプルもリストと同じアイテムの順序付きリストです。タプルとリストの唯一の違いは、タプル要素が不変であることです。

括弧を使用して Python タプルを定義でき、要素はコンマで区切られます。

x = (3, 'pink', 3+8j)
print('x[0] =', x[0])
print('x[0:2] =', x[0:2])
x[0] = 4			#Error because tuples are immutable
x[0] = 3
x[0:2] = (3, 'pink')
TypeError: 'tuple' object does not support item assignment
注意

タプルは不変です。

ストリング

文字列は文字のシーケンスです。文字列は、単一引用符または二重引用符を使用して作成できます。複数行の文字列は、三重引用符を使用して作成することもできます。

x = "String of characters"
x = """Multiline
string"""

文字列スライシング演算子の文字にアクセスするには使用されます。

x = 'Python Programming'
print('x[0] =', x[0])
print('x[4:15] =', x[4:15])
x[4] = 'l'			#Error because strings are immutable
x[0] = P
x[4:15] = on Programm
TypeError: 'str' object does not support item assignment
注意

文字列も不変です。

セットする

セットには一意のアイテムが含まれ、要素の順序なしリストです。Python のセットは、中括弧 {} を使用して作成でき、アイテムはコンマで区切られます。

x = {3, 5, 7, 2, 4, 5}		
print(x)		#prints the set variable 
print(type(x))		#checking type of x
{2, 3, 4, 5, 7}
<class 'set'>
注意

セットは変更可能です。

辞書

辞書は、要素がキーと値のペアである Python ネイティブデータ型です。辞書には順序のない要素が含まれています。キーを知っていれば、データの一部または辞書の値を取得できます。

辞書は中括弧 {} を使用して作成でき、各要素はキーと値を含むペアになります。

Python ディクショナリのキーと値は、任意のタイプにすることができます。

以下の例を検討してください。

x = {1:'blue', 'key':'pink'}
print(type(x))
print('x[1] = ', x[1])		#using key to retrive value
print("x['key'] =", x['key']) #using key to retrive value
<class 'dict'>
x[1] =  blue
x['key'] = pink
注意

辞書は変更可能です。

型変換

Python 変数は他の型に変換できます。たとえば、int データ型を float データ型に変換できます。型変換には、int()float()str() などの変換関数を使用できます。

x = 8
print("Value of x = ", int(x))
print("Value of x = ", float(x))
Value of x =  8
Value of x =  8.0

float 値を int 値に変換する場合、小数部分は切り捨てられます。

y = 3.4
print("Converting float to int:", int(y))
Converting float to int: 3

string データ型を別の型に変換する場合、互換性のある値を指定する必要があります。そうしないと、ValueError が発生します。

print("Converting string to float:", float('33.9'))
print("Converting string to float:", float('text'))
Converting string to float: 33.9
Traceback (most recent call last):
  File "<pyshell#12>", line 1, in <module>
    float('a')
ValueError: could not convert string to float: text

例えば、list()set()tuple( )など

print(set([4, 5, 6]))
print(tuple({8, 9, 10}))
print(list('Python'))
{4, 5, 6}
(8, 9, 10)
['P', 'y', 't', 'h', 'o', 'n']
comments powered by Disqus