はじめに
すべてのプログラミング言語には、Pythonを含む組み込みのデータ型があります。データ型は、さまざまな種類の変数に関する情報を提供し、プログラミングフローを決定します。他のライブラリは、パンダのDataFramesなどのデータ型を作成することがよくあります。
正しいデータ型の選択は、目前の問題によって異なります。 Pythonの基本的なタイプのデータとそのユースケースを理解することから始めるのが最善です。
このチュートリアルの例を通じて、さまざまなPythonデータ型とそれらをいつ使用するかについて学びます。
Pythonの基本的なデータ型
データ型 は、プログラマーがデータをどのように使用するかをコンパイラー(またはインタープリター)に伝える特性です。データ型には2つの一般的なカテゴリがあり、定義後にデータが変更可能かどうかが異なります。
1.不変 。割り当て後に変更できないデータ型。
2.変更可能 。割り当て後に変更可能なデータ型。
変数はさまざまなタイプのデータを格納します。特定のデータ型の変数を作成すると、データ型クラスのオブジェクトが作成されます。 Pythonインタープリターは、変数を作成するときに自動的に型を想定します。
オブジェクトのデータ型は、組み込みの type()
を使用して検出されます 働き。出力には、指定されたオブジェクトのクラスの名前が表示されます。
数値タイプ
数値タイプのオブジェクトは数値を表します。それらは3つのサブグループに分けられます:
- 整数
- 浮動小数点数
- 複素数
整数
整数値はintに属します クラス。具体的には、整数は小数点なしの正または負の整数を表します。整数の例は次のとおりです。
print(0, "is", type(0))
print(-1, "is", type(-1))
print(10, "is", type(10))
print(1234567890, "is", type(1234567890))
整数の精度は無制限です。長い数字と短い数字の区別はありません。長さはコンピュータのメモリによって異なります:
very_long = 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
print("Long numbers are type", type(very_long), ", such as this one:", very_long)
2進数、8進数、16進数の基数も整数に評価されます:
print(0b1010, "in base 2 is 1010 and the type is ", type(0b1010))
print(0o12, "in base 8 is 12 and the type is ", type(0o12))
print(0xA, "in base 16 is A and the type is ", type(0xA))
値を印刷すると、10進数の形式に自動的に変換されます。
浮動小数点数
Pythonの浮動小数点数は、小数点で定義された数値です。クラスタイプはfloat 。例:
print(0.1, "is", type(0.1))
print(-1.0, "is", type(-1.0))
print(10., "is", type(10.))
print(123.4567890, "is", type(123.4567890))
内部的には、これらは2進数の分数です。つまり、数値は10進数に近似しています。実際の値と概算値の違いは、多くの場合、目立たないものです。値を丸めると、正確な数値が得られます。例:
または、 Eという文字の数字 数字が続く場合は、科学的記数法を示します:
print(1E2, "is", type(1E2))
print(1e2, "is", type(1e2))
科学的記数法は、浮動小数点クラスの数値にも属します。構文は両方の小文字を受け入れますe 大文字のE 。
1.79×10以降の浮動小数点数は無限大と評価されます。ゼロ以外の最小の数値は5.0×10です。小さい数値はゼロと評価されます:
値は64ビットの倍精度値に対応します。
複素数
複素数は、数理科学でよく使用されます。 Pythonは、複素数と呼ばれる複素数のクラスを提供します 。複素数を書くには、次を使用します:
<real part> + <complex part>j
または、実際の部分を省略できます:
<complex part>j
例:
print(1+2j, "is", type(1 + 2j))
print(2j, "is", type(2j))
出力は、データが複合体に属していることを示しています クラス。
シーケンスタイプ
シーケンスタイプは、単一の変数に格納されたシーケンシャルデータを表すのに役立ちます。 Pythonで使用されるシーケンスには次の3つのタイプがあります。
- 文字列
- リスト
- タプル
変更可能性と順序に関しては、個々のシーケンスタイプは互いに異なります。
文字列
文字列は、Unicode文字を表す一連のバイトです。 Pythonの文字列型はstrと呼ばれます 。
文字列を作成する
ユースケースと必要な文字に応じて、文字列を作成する4つの異なる方法があります。これらは、区切り文字と、文字列が単一行か複数行かによって異なります。
1.二重引用符区切り文字を使用して文字列を作成します :
print("This is a string with 'single' quotes delimited by double quotes")
二重引用符で区切られた文字列は、一重引用符またはアポストロフィを含む文字列に役立ちます。または、エスケープ文字を使用することもできます:
print("Thanks to the \"\\\" character, we can use double quotes inside double quote delimiters")
この例は、文字列に円記号を表示する方法を追加で示しています。
2.一重引用符区切り文字を使用して文字列を作成します :
print('This is a string with "double" quotes delimited by single quotes')
一重引用符で区切られたPython文字列は、文字列に二重引用符が含まれている場合に有効です。別の方法は、エスケープ文字を使用することです。例:
print('Thanks to the \'\\\' character, we can use single quotes inside single quote delimiters')
複数行の文字列を区切るには2つの方法があります。
a)三重一重引用符区切り文字を使用して複数行の文字列を作成します :
print('''This is a multiline string
with 'single', "double" and """triple-double""" quotes
delimited with triple single quotes''')
文字列に一重引用符、二重引用符、三重二重引用符の両方が含まれている場合、または二重引用符で終わる場合は、三重一重引用符を使用して文字列を区切ります。
b)トリプル二重引用符区切り文字を使用して文字列を作成します :
print("""'This is a multiline string
with 'single', "double" and ```triple single``` quotes
delimited with triple double quotes'""")
一重引用符、二重引用符、三重一重引用符を含む文字列、または一重引用符で終わる文字列には、三重二重引用符の区切り文字を使用します。
文字列の要素にアクセスする
Pythonの文字列は、文字の配列です。個々の要素にアクセスするには、インデックスを使用します:
s = "phoenixNap"
s[0], s[2], s[-1]
文字列の一部にアクセスするには、スライスを使用します:
print(s[0:7])
print(s[-3:])
インデックス0の最初の要素にアクセスします。-1から逆方向にカウントすると、シーケンスの最後にアクセスします。
文字列は配列であるため、 for を使用して、すべての文字をループできます。 ループ:
for letter in s:
print(letter)
このコードは、文字列のすべての文字を1つずつ出力します。
リスト
Pythonリストは、順序付けられた変更可能な配列です。リストでは、タイプに関係なく要素を複製できます。リストにメンバーを追加またはリストから削除すると、作成後に変更できます。
リストを作成する
角かっこを使用してPythonでリストを作成します 、個々の要素をコンマで区切ります:
A = [1, 2, "Bob", 3.4]
print(A, "is", type(A))
ネストされたリストを作成する リストをリストに追加する:
B = [A, 2, 3, 4]
print(B, "is", type(B))
Pythonリストは変更可能であるため、空のリストを作成して後で要素を追加したり、既存のリストにメンバーを追加または削除したりできます。
リストの要素にアクセスする
リストは一連の要素です。インデックス表記を使用してメンバーにアクセスします。最初の要素はインデックス0にあります:
A[0], A[3], A[1]
リストをスライスすると、2つのインデックス間のすべての要素が返されます。
A[0:2]
負のインデックスも可能です:
A[-1]
-1 indexは、リストの最後の要素を出力します。ネガティブインデックスは、メンバーの長いリストの最後に移動する場合に特に便利です。
タプル
Pythonタプルは、変更できない順序付けられた要素の配列です。タプルが変数に格納されると、メンバーを追加または削除することはできません。タプルは、任意のタイプの重複メンバーを許可します。
タプルを作成する
タプルを作成するには、標準の丸かっこを使用して、個々の要素をコンマで区切ります。
t = ("bare", "metal", "cloud", 2.0, "cloud")
print(t, "is", type(t))
タプルにタプルを追加して、ネストされたタプルを作成します。
c = (t, "computing")
print(c, "is still", type(t))
単一の要素を持つタプルを作成するには、最初の要素の後にコンマを使用します。
p = ("phoenixNap")
n = ("phoenixNap",)
print("p is", type(p), "whereas n is", type(n))
カンマがない場合、変数は文字列です。
要素のない丸括弧を使用して空のタプルを作成します。タプルは変更できないため冗長に見えますが、空のタプルは特定のユースケースでデータが不足していることを示すのに役立ちます。
タプルのアクセス要素
タプルはインデックス表記をサポートします。角かっこと要素のインデックスを使用して、個々の要素にアクセスします。
t[0], t[1], t[-1]
負の索引付けにより、リストの最後にある要素にアクセスできます。
タプルの一部にアクセスするには、スライス表記を使用します:
t[2:4]
出力には、タプルの3番目と4番目の要素が表示されます。
ブール型
ブールデータ型はboolに属します クラスを作成し、式の真理値を決定します。ブール型のオブジェクトは、 Trueのいずれかに評価されます またはFalse :
print(type(True))
print(type(False))
ブール値は整数値のサブタイプです。整数1と0の真理値をTrueとFalseでチェックすると、どちらの場合もtrueが返されます。
print(True == 1)
print(False == 0)
値のデータ型が異なります。 TrueとFalseはどちらもブール型ですが、1と0は整数型です。
セットタイプ
Setデータ型はsetの一部です クラス。データコレクションを単一の変数に格納します。セットは順序付けられておらず、インデックスを使用して個々の要素にアクセスすることはできません。重複する値はすべて無視されます。
セットを作成するには、中括弧表記を使用し、個々の要素をコンマで区切ります。
s = {1, 2, 3, 3, 3, 4}
print(s, "is", type(s))
データの複数のインスタンスが消えることに注意してください。
マッピングタイプ
マッピングデータ型はPythonディクショナリで表されます。ディクショナリは、 dictに属するキーと値のペアを持つデータのコレクションです。 クラス。
辞書を作成するには、中括弧表記を使用して、キーと値のペアを定義します。例:
d = {"articles":10,
"cost":2.2,
True:"Okay!",
2:"One"}
print(d, "is", type(d))
キーと値のペアは、任意のデータ型を受け入れます。辞書の値にアクセスするには、キーをインデックスとして使用します:
print("The cost is:", d["cost"])
リンクされたデータペアを保存する場合、辞書は便利です。
Pythonでのデータ型の管理
長くて複雑なプログラムを作成する場合、さまざまなデータ型を管理することが、プログラミングの問題に取り組む上で重要な側面になります。必要なデータ型を完璧に予測することは不可能です。ただし、データ型を確認または変更する方法を知ることは、プログラミングに不可欠です。
データ型の確認
すべての変数にはデータ型があり、組み込み関数 type()でチェックされます。 :
print(type(1))
print(type(1.))
print(type(1+0j))
print(type("1"))
print(type([1]))
print(type((1,)))
print(type({1}))
print(type({1:1}))
上記の例は、さまざまなデータ型を使用して数値1を書き込むいくつかの方法を示しています。関数type() 変数でも機能します。
データ型の設定
Pythonのデータ型は、変数に値を書き込むときに自動的に設定されます。各データ型のクラスコンストラクターを使用すると、変数の特定のデータ型を設定することもできます。
データ型 | コンストラクター |
文字列 | str(<value>) |
整数 | int(<value>) |
浮動小数点 | float(<value>) |
複雑 | complex(<value>) |
リスト | list((<value>, <value>)) |
タプル | tuple((<value>, <value>)) |
ブール値 | bool(<value) |
セット | set((<value>, <value>)) |
辞書 | dict((<key>=<value>, <key>=<value>)) |
データ型の変換
一部のPythonデータ型は、他のデータ型に変換できます。変数タイプを変換するには、次の2つの方法があります。
- 明示的に 。データ型のクラスコンストラクターは、データ型も変換します。
- 暗黙的に 。可能な場合、Pythonインタープリターはデータ型を自動的に変換します。たとえば、floatに整数を追加すると、floatの結果が生成されます。