【Python入門】初心者向けに基本のデータ型を解説

Pythonデータ型解説 Python

数値型

Python2では整数int型と長整数long型が存在しましたが、Python3では統合されてint型のみとなりました。 正負は±によってあらわされます。

型と演算子

説明
int小数点を含まない数値1、-2
float小数点を含む数値0.5、-0.01

数値型の計算には次の演算子を使用します。

演算子結果
加算+1 + 1 2
減算1 – 2-1
乗算*2 * 36
除算/4 / 22.0
あまり%5 % 21
切り捨て除算//5 // 31
べき乗**2 ** 532

注意しなければいけないのが除算の結果が「2」ではなく「2.0」とfloat型になっている点です。
切り捨て除算の場合は商の整数部分のみ得ることができます。
本来「5 ÷ 3 = 1.66666…」ですが、小数点以下を切り捨てて「1」とします。

変数を計算に用いる場合、上記の演算子と=(代入)を組み合わせた代入演算子があります。 左辺に右辺との計算結果を代入します。

例)
a += b       # a = a + b と同じ
b -= c        # b = b – c と同じ

切り上げ、切り捨て

小数点以下を任意に切り上げ、切り捨てしたい場合はmathモジュールで実現できます。
切り上げの場合はceil()、切り捨ての場合はfloor()を使用します。

例)
math.ceil(1.234) #2
math.floor(1.234) #1

四捨五入

四捨五入をしたい場合は、decimalモジュールのDecimal型を使用します。
対象をDecimal型に変換してquantize()を使用します。

Decimal.quantize(m, rounding)
第1引数 m:Decimal型で桁を指定します。指定した桁より下位の桁を丸めます。
第2引数 rounding:丸め方の形式を指定します。

  ROUND_UP:切り上げ
  ROUND_DOWN:切り捨て
  ROUND_HALF_UP:四捨五入

例)
Decimal(“1.234”).quantize(Decimal(”0.01”), rounding=ROUND_HALF_UP)
# 1.23

Decimal(“1.235”).quantize(Decimal(”0.01”), rounding=ROUND_HALF_UP)
# 1.24

文字列型

文字列型は’(シングルクォーテーション)または”(ダブルクォーテーション)で囲って表現します。両者に違いはありません。

bool型(真偽値)

bool型にはTrue(正)、False(否)の2つのオブジェクトがあります。
数値0はFalse、それ以外の実数はTrueとして扱われます。
文字列の場合は””(空文字)はFalse、それ以外をTrueとして扱います。

例)
bool(0) # False
bool(1) # True
bool(“”) # False
bool(” “) # True
bool(“aaa”) # True

日付型

日付はdatetimeモジュールで扱われます。
日付には年月日を保持するdate型と年月日に加えて時分秒ミリ秒まで保持するdatetime型があります。

例)
print(datetime.date.today())
# 2022-08-21

print(datetime.datetime.today())
# 2022-08-21 11:18:00.789605

コレクション(配列)

Pythonでは複数のデータから構成されるデータ型をコレクションと呼びます。
コレクションにはリスト、タプル、セット、辞書の4種類あります。
コレクションはfor文のループ処理対象にできるイテレータブルなオブジェクトです。

要素の順番要素の変更要素の重複書き方
リスト(list)あり[a, b, c]
タプル(tuple)あり×(a, b, c)
セット(set)なし×{a, b, c}
辞書(dict)なし〇(キーは不変)〇(キーは重複不可){a:1, b:2, c:3}

リスト(list)

リストは[](角括弧)で表現し、要素にはインデックス番号でアクセスします。

例)
data = [“red”, “blue”, “green”]
print(data[0])

#red

リストへの操作は次のようなものがあります。

append(x)リストの末尾にxを追加します。
remove(x)リストの中からxに等しい値の要素を削除します。
clear()リスト中の要素をすべて削除します。
count(x)リストでのxの出現回数を返します。
sort()リスト内の要素を値順に並べ替えます。

タプル(tuple)

タプルはリストに似ていますが、要素の変更ができません。したがってappend()やremove()のような関数も使用できません。

そのかわりリストよりも高速にデータを処理できます。また、イミュータブルであるのでハッシュ化できます。

タプルを定義するには()で括り、要素をカンマで区切ります。

例)
data = (“red”, “blue”, “green”)
print(data(1))

#red

セット(set)

セットはリストやタプルのような要素の順番がありません。
また、セットはユニーク(固有)の要素しか保持せず、同じ要素を追加しても無視されます。

セットを定義するには{}(波括弧)で括り、要素をカンマで区切ります。

例)
data = {“red”, “blue”, “green”}

セットへの要素の追加は、add()をつかいます。

例)
data = {“red”, “blue”, “green”}
data .add(“black”)

#data = {“black”, “red”, “blue”, “green”}

セットから要素を削除するにはremove()またはdiscard()をつかいます。
remove()はセット内に対応する要素がないとエラーとなるので、discard()をつかうとよいでしょう。

例)
#data = {“black”, “red”, “blue”, “green”}
data .discard(“red”)

#data = {“black”, “blue”, “green”}

セットはユニークな値しか保持しないため、集合演算が可能です。

辞書(dict)

辞書はキー(key)とそれに対応する値(value)を扱う型です。
辞書は要素の順番を持ちませんが、1つの要素がkeyとvalueのペアになっています。

辞書を定義するには{}(波括弧)で括り、要素をカンマで区切ります。

例)
data = {   “apple” : 200,   “orange” : 150,   “banana” : 100 }

辞書を追加するときは、キーと値を宣言することで追加できます。

例)
data = {   “apple” : 200,   “orange” : 150,   “banana” : 100 }
data[“melon”] = 500

#data = {“apple” : 200, “orange” : 150, “banana” : 100, “melon” : 500}

辞書はキーを変更することができませんが、追加と同様の方法で、キーに対応する値を変更できます。

辞書の削除はdel()によって、キーと値を削除することができます。

例)
data = {   “apple” : 200,   “orange” : 150,   “banana” : 100,   “melon” : 500 }
del() data[“apple”]

#data = {“orange” : 150, “banana” : 100, “melon” : 500}

参考書籍

コメント

タイトルとURLをコピーしました