Python チュートリアル - 変数とデータ型
このセクションでは、Python プログラミングの変数とデータ型を学習します。
Python 変数
変数は、名前と値(一部のデータ)を持つメモリロケーションです。
変数には一意の名前があるため、メモリの場所を区別できます。これらには、識別子の命名規則と同じ命名規則があります。[識別子の命名規則]を確認します(/ja/tutorial/python-3-basic-tutorial/keywords-and-identifiers/)。
Python では、変数を使用する前に変数を宣言する(データ型を指定する)必要はありません。変数を作成する場合は、変数の有効な名前を書き、代入演算子を使用して値を割り当てます。変数のデータ型は、それに割り当てる値の型に従って内部的に定義されます。
変数の割り当て
代入演算子 =
は、変数に値を割り当てるために使用されます。任意のタイプの値を変数に割り当てることができます。変数のデータ型は内部的に定義されます。
次のコードは、割り当て演算子を使用してさまざまなデータ型の値を割り当てる方法を示しています。
x = 3
y = 4.124
z = "Python"
ここには、int
、float
、および string
変数があります。
複数の割り当て
単一の Python ステートメントで複数の変数に値を割り当てることもできます。これは複数の割り当てと呼ばれます。以下のコードを検討してください。
x, y, z = 2, 4.124, "Python"
ここでは 2 が x
に割り当てられ、4.124 が y
に割り当てられ、文字列 “Python"が z
に割り当てられます。
同じ値を異なる変数に割り当てる場合は、次のように記述できます。
x = y = z = "Blue"
これで、3つの変数はすべて等しくなりました。
Python データ型
Python はオブジェクト指向プログラミング言語であり、Python には primitive
または unboxed
タイプがないため、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"]