プログラムでは、取り扱うデータの種類によってデータ型というものが決まっています。
- 数値⇒数値型
- 文字列⇒文字列型
- シーケンス型⇒複数のデータの並びなどなど…
今回は、数値(0, 1, 1.5, -99, 777
などなど)を取り扱うためのデータ型、数値型について解説します。
動画で解説
動画でさっとチェックしたい方は、これらの動画をチェックしてください!
【解説動画】5min. Python|数値型と基本演算
5min. Python解説動画【入門編】|第7回目:数値型の種類と算術演算
【解説動画】5min. Python|数値型 比較演算と基本関数
5min. Python解説動画【入門編】|第8回目:数値型の比較演算と基本関数
数値型の種類
数値型には次の3種類があります。
- int型:整数(
0, 1, 5, -1
など小数点を含まない数値) - float型:浮動小数点型(
0.1, -5.5, 3.14, 0.0
など小数点を含む数値) - complex型:複素数(虚数を含む数値)※complex型の説明は省略
type()
関数で、変数の型を確認することができます。
num = 1
print(type(num))
# ⇒ <class 'int'>
x = 1.5
print(type(x))
# ⇒ <class 'float'>
int型とfloat型をワザワザわけて考える理由
コンピュータの中では、
int型
:数字だけを記憶float型
:数字の部分と小数点の部分を別々に記憶
していると考えるとわかりやすいです(厳密ではないですが、わかりやすさ重視…)。
異なる記憶方法なので、別々の型と定義しているというわけですね。
ただし、pythonでは型の自動推定が優秀なので、初めのうちはint型とfloat型の違いを意識することが比較的少ないと思います。
明示的にint型
やfloat型
を区別する必要があるケースに出会う頃には、ある程度数値型への理解が深まっていると思います。
数値型の基本演算
算術演算
- 四則演算:
+ - * /
- 商と剰余:
// %
- べき乗:
**
#足し算
print(1+2)
# ⇒ 3
#引き算
print(5-4)
# ⇒ 1
#掛け算
print(4*5)
# ⇒ 20
#割り算
print(5/2)
# ⇒ 2.5
割り算の場合、出力が自動でfloat型になっています。
このようにpythonでは必要に応じて型変換をしてくれることが多く、とても便利です。
# 商
print(9//4)
# ⇒ 2
# 剰余
print(9%4)
# ⇒ 1
9
を2
で割ったときの商は4
で、余り(剰余)が1
です。
剰余は数字が、奇数か偶数か調べるときに使用することがあります。
x = 99
print(x//2)
# ⇒ 1
y = 100
print(y//2)
# ⇒ 0
- 奇数:
2
で割ったときの余りは1
- 偶数:
2
で割ったときの余りは0
ということを利用して、偶奇判別ができます。
次にべき乗の例です。
べき乗の計算に、エクセルでは^を使用しますが、pythonでは**
ですので注意しましょう!
print(2**3)
# ⇒ 8
# 2*2*2 = 8
計算の優先順位
計算の優先順位ですが、初めのうちは数学と同じだと覚えておけば大丈夫です。
とりあえず、この順番を覚えておきましょう
()
の中身- べき乗
**
- 割り算
/
、掛け算*
、商//
、剰余%
- 足し算
+
、引き算-
x = (1 + 1) * 3
# ⇒ 6
y = 1 + 1 * 3
# ⇒ 4
z = (1 + 1)**3 *3
# ⇒ 24
# 書く順番を変えると少し見やすい
z = 3 * (1 + 1)**3
# ⇒ 24
最後の例のように書く順番を少し工夫するだけで、見やすくなることもあります。
常に見やすさを意識するようにしましょう!
比較演算
二つの数値を比較して、条件を満たすかどうかを判定します。
結果は、
True
(満たす)またはFalse
(満たさない)
となります。
次のような比較演算があります。
- 等しい/等しくない
x
とy
が等しい:x == y
x
とy
は等しくない:y != y
- 以上/以下
x
はy
以上:x >= y
xはy
以下:x <= y
- 大きい/小さい
x
はy
より大きい:x > y
x
はy
より小さい:x < y
x = 10
y = 20
z = 10
#等しい
print(x == y)
# ⇒ False
print(x == z)
# ⇒ True
#等しくない
print(x != y)
# ⇒ True
# 以上
print(x >= y)
# ⇒ False
#小さい
print(x < y)
# ⇒ True
=
と!<>
を組み合わせる場合は、!<>
は全て=
の左側に書きます。
“ぜ”んぶ”ひ”だりと、”ぜひ”覚えましょう!
基本関数
特に使用頻度が多いと思われるものを紹介します。
- 数値処理:
abs()
:絶対値round()
:四捨五入
- 型変換(キャスト):
int()
:float型
や文字列型
をint型
に変換float()
:int
や文字列型
をfloat型
に変換
数値処理
abs()
は、数値の絶対値を返します。
x = -10
print(abs(x))
# ⇒ 10
round(x, [n])
は、数値を四捨五入した値を返します。
2つ目の引数を指定するかしないかで挙動が変わります。
2つ目の引数を:
- 指定しない⇒小数第一位で四捨五入した
int型
(整数) - 指定する ⇒小数点以下が
n+1
位を四捨五入したfloat型
x = 11.16
print(round(x))
# ⇒ 11
# 出力はint型
print(round(x, 1))
# ⇒ 11.2
# 出力はfloat型、小数点以下1桁で丸まった
print(round(x, 0))
# ⇒ 11.0
# 出力はfloat型、小数点以下0桁で(整数に)丸まった
第二の引数は、小数点以下何桁に丸めたいかを指定すると覚えれば大丈夫です。
型変換
int()
とfloat()
は、数値型の変換を行います。
int()
では、小数点以下の値を切り捨ててしまう点に注意しましょう。
x = 11.16
print(int(x))
# ⇒ 11
y = 10
print(float(y))
# ⇒ 10.0
また、文字列の数値を数値に変換することもできます。
x = "1"
y = "50"
print( x + y )
# ⇒ 150
# 文字列の結合になったので、1, 50が並べて表示された
print(int(x)+int(y))
# ⇒ 51
# int型の足し算なので、51になった
テキストファイルからデータを読み込んだ場合、数値も文字列型となります。
そういったときは、int()
やfloat()
を使って、文字列を数値型に型変換しましょう!
おわりに
今回は数値型の種類と基本演算について紹介しました!
5min. python動画解説では、pythonの基本をショートクリップで解説しています!
流し見するだけでpythonをマスターできる動画シリーズを目指しています。