Pythonにはさまざまなデータ型があり、それぞれに基本的なルールと特性があります。以下では主要なデータ型を紹介し、それぞれについてサンプルコードを示します。
主要なデータ型
- 整数(int): 整数値を表します。負の数、ゼロ、正の数を含みます。
- 浮動小数点数(float): 小数点を含む数値を表します。
- 文字列(str): 文字のシーケンスを表します。シングルクォート(’)またはダブルクォート(”)で囲みます。
- リスト(list): 順序付けられた要素のコレクションです。ブラケット([])で囲み、コンマで要素を区切ります。
- タプル(tuple): 順序付けられた変更不可の要素のコレクションです。丸括弧(())で囲みます。
- 辞書(dict): キーと値のペアのコレクションです。波括弧({})で囲み、コロン(:)でキーと値を区切ります。
- ブール(bool): 真(True)または偽(False)のいずれかの値を取ります。
1.Pythonの整数(int)
Pythonの整数(int)は、数学の整数に対応するデータ型で、正または負の整数(ゼロを含む)を表現することができます。Python 3では、整数のサイズは理論上無限で、コンピュータのメモリの制限内で任意の大きさの数値を扱うことが可能です。これは、Pythonが内部的に数値を動的に管理し、必要に応じて数値の格納サイズを調整するためです。
基本的な使い方
整数を使用する基本は非常にシンプルです。直接数値を記述することで、整数値を変数に割り当てることができます。
# 整数の例
number = 10
print(number) # 10
演算
整数に対しては、加算(+
)、減算(-
)、乗算(*
)、除算(/
)、整数除算(//
)、剰余(%
)、累乗(**
)などの基本的な数学的演算が可能です。
a = 8 + 2 # 加算(結果: 10)
b = 8 - 2 # 減算(結果: 6)
c = 8 * 2 # 乗算(結果: 16)
d = 8 / 2 # 除算(結果: 4.0)除算の結果はfloatになる
e = 8 // 2 # 整数除算(結果: 4)
f = 8 % 2 # 剰余(結果: 0)
g = 8 ** 2 # 累乗(結果: 64)
2.浮動小数点数(float)
Pythonの浮動小数点数(float)は、実数を表現するためのデータ型です。これには、小数点を含む数値や、非常に大きな数値、非常に小さな数値(正確さを失う可能性がある)が含まれます。浮動小数点数は、コンピュータが実数を近似する方法に基づいており、IEEE 754標準に従って表現されます。
基本的な使い方
浮動小数点数を使用するには、数値に小数点を含めます。または、科学的表記法を使用して数値を指定することもできます。
x = 10.0
y = -3.14
z = 2.5e2 # 2.5 x 10^2 = 250.0
w = -4.2e-4 # -4.2 x 10^-4 = -0.00042
浮動小数点数の扱いにおける注意点
精度: 浮動小数点数は、多くの場合、完全に正確ではありません。これは、コンピュータが2進数(基数2)を使用して数値を内部的に表現するため、10進数で表される多くの小数点数は正確に2進数で表現できないからです。例えば、0.1 + 0.2が0.3と厳密には等しくないことがあります。
3.文字列(str)
Pythonの文字列(str
)は、テキストデータを表すためのデータ型です。文字、単語、文、あるいはそれ以上の長さのテキストを格納し、操作することができます。文字列はイミュータブル(変更不可)なので、一度作成するとその内容を変更することはできませんが、新しい文字列を作成することは可能です。
基本的な使い方
文字列を作成するには、シングルクォート('
)またはダブルクォート("
)を使用します。複数行にわたる文字列を作成する場合は、トリプルクォート('''
または"""
)を使用します。
s = 'Hello, World!'
t = "Python programming"
u = """これは
複数行にわたる
文字列です。"""
文字列の操作
Pythonには、文字列を操作するための豊富なメソッドが用意されています。以下はその一部です。
upper(): 文字列を大文字に変換します。
lower(): 文字列を小文字に変換します。
strip(): 文字列の両端から空白文字(スペース、タブ、改行など)を削除します。
split(sep=None): 文字列をsepで指定された区切り文字(指定しない場合は空白文字)で分割して、リストにして返します。
join(iterable): 指定したイテラブル(リストなど)の各要素を連結して、一つの文字列にします。
replace(old, new): 文字列内のoldをnewに置換します。
find(sub): 文字列内で部分文字列subが最初に現れる位置を返します。見つからない場合は-1を返します。
文字列のスライス
文字列の一部を取り出すには、スライスを使用します。スライスは[開始:終了:ステップ]
の形式で指定します。
text = 'Hello, World!'
print(text[0:5]) # 'Hello'
print(text[7:]) # 'World!'
print(text[-1]) # '!'
print(text[::2]) # 'Hlo ol!'
4.リスト(list)
Pythonのリスト(list
)は、複数の要素を順序付けて格納するデータ構造です。リストは可変(変更可能)であり、異なる型の要素を含むことができますが、通常は同じ型の要素を格納することが多いです。リストは非常に柔軟で強力なデータ型であり、Pythonプログラミングにおいて広く使用されます。
リストの作成と基本操作
リストは角括弧([]
)を使って作成し、コンマで区切られた要素を含みます。
my_list = [1, 2, 3, 4, 5] # 整数のリスト
names = ['Alice', 'Bob', 'Charlie'] # 文字列のリスト
mixed = [1, 'Alice', True, 2.34] # 異なる型の要素を含むリスト
リストは可変なので、要素の追加、削除、変更が可能です。
要素の追加: .append(value) メソッドを使用してリストの末尾に要素を追加します。
要素の挿入: .insert(index, value) メソッドを使用して特定の位置に要素を挿入します。
要素の削除: .remove(value) メソッドを使用して特定の値を持つ要素を削除します。.pop(index) メソッドを使用して特定の位置の要素を削除し、その要素を返します。
リストの操作と関数
リストに対しては様々な操作が可能です。
スライス: リストの一部を取り出します。
結合: + 演算子を使用してリスト同士を結合します。
繰り返し: * 演算子を使用してリストの要素を繰り返します。
リスト内包表記: 新しいリストを生成するために、式と制御構造を含むコンパクトな方法を提供します。
# リスト内包表記の例
squares = [x**2 for x in range(10)]
リストとイテレーション
リストはイテラブル(繰り返し可能)であり、for
ループを使ってリストの各要素にアクセスすることができます。
for name in names:
print(name)
5.タプル(tuple)
Pythonのタプル(tuple
)は、複数の要素を順序付けて格納するデータ構造ですが、リストとは異なりイミュータブル(変更不可能)です。タプルは異なる型の要素を含むことができ、一度作成されるとその内容を変更することはできません。この特性により、タプルはプログラム内で変更されるべきではないデータの保持に適しています。また、タプルはハッシュ可能であり、辞書のキーとして使用することができます。
タプルの作成と基本操作
タプルは丸括弧(()
)を使って作成しますが、括弧なしでも要素をコンマで区切ることでタプルを作成できます。ただし、単一の要素を持つタプルを作成する場合は、要素の後ろにコンマを付ける必要があります。
my_tuple = (1, 2, 3, 4, 5)
no_parentheses = 'Alice', 'Bob', 'Charlie'
single_element = (42,)
タプルのアクセスと操作
タプルの要素にアクセスするには、インデックスを使います。スライスもサポートされています。しかし、タプルはイミュータブルなので、一度作成されたタプルの要素を変更することはできません。
print(my_tuple[0]) # 最初の要素にアクセス
print(my_tuple[1:3]) # タプルの一部をスライス
プル同士は結合することができますが、これは新しいタプルを作成する操作です。
combined_tuple = my_tuple + no_parentheses
タプルの使用例
関数の引数と戻り値: タプルは関数から複数の値を返す際に便利です。
パッキングとアンパッキング: 複数の変数に一度に値を割り当てることができます。
不変なリストとして: リストの代わりにタプルを使用することで、データが意図せず変更されるのを防ぐことができます。
def min_max(items):
return min(items), max(items) # 複数の値をタプルで返す
# アンパッキング
min_val, max_val = min_max([1, 2, 3, 4, 5])
6.辞書(dict)
Pythonの辞書(dict
)は、キーと値のペアを格納するデータ構造です。辞書は順序を保証しないコレクションであり(Python 3.7以降では挿入順序が保持されますが、これは実装の詳細であり、辞書の基本的な性質ではありません)、キーによって値にアクセスします。辞書は可変で、動的に要素を追加、削除、変更することができます。キーはイミュータブル(変更不可能)な型でなければならず、通常は文字列やタプルなどが使用されますが、値には任意のデータ型を使用できます。
辞書の作成と基本操作
辞書は波括弧({}
)を使って作成し、キーと値のペアはコロン(:
)で区切られます。
my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}
また、dict()コンストラクタを使用して、キーワード引数やキーと値のペアのリストから辞書を作成することもできます。
my_dict = dict(name='Alice', age=30, city='New York')
辞書の要素へのアクセスと変更
辞書の要素にアクセスするには、キーを使います。要素を変更するには、キーを指定して新しい値を割り当てます。
# 要素へのアクセス
print(my_dict['name']) # 'Alice'
# 要素の変更
my_dict['age'] = 31
存在しないキーにアクセスしようとすると、KeyErrorが発生します。これを避けるために、get()メソッドを使ってキーの値を取得することができます。get()メソッドは、キーが存在しない場合にはNoneを返すか、指定したデフォルト値を返します。
print(my_dict.get('job', 'Not specified')) # 'Not specified'
辞書への要素の追加と削除
辞書に新しい要素を追加するには、新しいキーに値を割り当てます。要素を削除するには、delステートメントを使用するか、pop()メソッドを使用します。
# 要素の追加
my_dict['job'] = 'Engineer'
# 要素の削除
del my_dict['city'] # 'city'キーとその値を削除
job = my_dict.pop('job') # 'job'キーを削除し、その値を返す
辞書のイテレーション
辞書をループで処理するには、items()メソッドを使用してキーと値のペアにアクセスするか、keys()メソッドやvalues()メソッドを使用してそれぞれキーや値にアクセスします。
for key, value in my_dict.items():
print(f'{key}: {value}')
7.ブール(bool)
Pythonのブール型(bool)は、真(True)または偽(False)のいずれかの値を持つデータ型です。ブール型はプログラミングにおいて非常に重要で、条件文や制御フローの決定、論理演算の結果を表すのに使われます。
ブール値の生成
ブール値は、直接TrueやFalseを指定することによって、または比較演算子や論理演算子の結果として生成されます。
a = True
b = False
# 比較演算子の結果としてブール値を生成
result = (10 > 5) # True
論理演算子
ブール型には、and、or、notの3つの論理演算子が使用できます。
and: 両方のオペランドがTrueの場合にTrueを返します。
or: 少なくとも一方のオペランドがTrueの場合にTrueを返します。
not: オペランドがFalseの場合にTrueを返し、Trueの場合にFalseを返します。
result_and = True and False # False
result_or = True or False # True
result_not = not True # False
真偽値の評価
Pythonでは、TrueやFalse以外の値も条件文の中で真偽値として評価されます。一般に、以下のような値はFalseと評価されます。
None
0(ゼロ)や0.0などの数値ゼロ
空の文字列(”)、リスト([])、タプル(())、辞書({})などの空のコレクション
その他、bool() メソッドまたはlen() メソッドがFalseまたはゼロを返すオブジェクト
これ以外の値は基本的にTrueとして評価されます。
if []: # Falseと評価される
print("このブロックは実行されません。")
if [1, 2, 3]: # Trueと評価される
print("このブロックは実行されます。")
ブール型の使用例
ブール型は、プログラムの決定を行う際に広く使用されます。例えば、特定の条件が満たされているかどうかをチェックする場合や、ループを継続するかどうかを判断する場合などです。
flag = True
if flag:
print("フラグは真です。")
else:
print("フラグは偽です。")
■まとめ
Pythonではタプルやdictを使う場面が多々あります。
常に使えるように覚えておくのが良いでしょう。