【Python】型と演算子

business-notepc プログラミング

そまちょブログのそまちょ(@somachob)です。

この記事では、Pythonの型と演算子について解説していきます。

Python の主要な型には、次のようなものがあります。

  • 整数:int
  • 浮動小数点数:float
  • 文字列:string
  • 真偽値:bool

整数

整数は、-5、8、100 などの数値です。Python では int です。

以下のコードでは、type() で型を確認し、print() で出力しています。# はコメントを表し、プログラムの実行には関係しません。

print(type(-5))		# => <class 'int'>
print(type(8))  	# => <class 'int'>
print(type(100))	# => <class 'int'>

C 言語だと int 型は、-2,147,483,648 ~ 2,147,483,647 の範囲しか扱えませんが、Python では範囲の制限はありません。

数値には「_(アンダーバー)」を含めることができます。大きい桁を扱うときは、「_」を使えば数値が見やすくなるので便利です。

a = 999_999_999_999_999
print(a)	# => 999999999999999

b = a + 1
print(b)	# => 1000000000000000

浮動小数点数

浮動小数点数は、-3.5、4.58、10.0 などの小数のある数値です。Python では float です。

print(type(-3.5))	# => <class 'float'>
print(type(4.58))	# => <class 'float'>
print(type(10.0))	# => <class 'float'>

# 同じ10でもこれは int になる
print(type(10))		# => <class 'int'>

文字列

文字列は、「’(シングルクォーテーション)」または「”(ダブルクォーテーション)」で囲ったものです。Python では str です。

# ' または " で囲むと文字列になる
print(type('Python'))	# => <class 'str'>
print(type("Hello!"))	# => <class 'str'>

# 数値も ' または " で囲めば文字列になる
print(type('10'))		# => <class 'str'>
print(type('10.0'))		# => <class 'str'>

文字列についてはこちらの記事で詳しく解説しています。

真偽値

真偽値は、True(真)と False(偽)で表現します。Python では bool です。

print(type(True))	# => <class 'bool'>
print(type(False))	# => <class 'bool'>

条件分岐をさせる if などで、真偽値を使います。

真偽値以外でも条件分岐に使えることができ、Python ではオブジェクトは基本的に True と判定されます。

None、0、空の文字列などは False と判定されます。

if True:
    print('実行される')
if 1:
    print('実行される')
if 5.0:
    print('実行される')
if 'Python':
    print('実行される')


# 次はすべて実行されません
if False:
    print('実行されない')
if None:
    print('実行されない')
if 0:
    print('実行されない')
if 0.0:
    print('実行されない')
if '':
    print('実行されない')

演算子

算術演算子、関係演算子、論理演算子について紹介します。

算術演算子

足し算、引き算、割り算、掛け算などをするのが算術演算子です。算術演算子を使うことで計算ができます。

Python では次のような算術演算子が使えます。

  • +:加算
  • -:減算
  • *:乗算
  • **:べき乗
  • /:除算(浮動小数点数)
  • //:除算(小数点以下切り捨て)
  • %:剰余

% の剰余は、割り算の余りを求める演算子です。たとえば、「5 ÷ 2 = 2 余り 1」ですが、% を使えば、あまりの 1 を求めることができます。

print(1 + 2)	# => 3
print(3 - 2)	# => 1
print(2 * 3)	# => 6
print(2 ** 3)	# => 8
print(4 / 2)	# => 2.0
print(5 / 2)	# => 2.5
print(5 // 2)	# => 2
print(5 % 2)	# => 1

除算(/)は、計算結果が整数でも常に浮動小数点数(float 型)を返します。

// を使えば、割り算した結果の小数部分を切り捨てた整数(int 型)が返ってきます。

print(7 / 4)		# => 1.75
print(type(7 / 4))	# => <class 'float'>

print(7 // 4)  		# => 1
print(type(7 // 4))	# => <class 'int'>


print(4 / 2)		# => 2.0
print(4 // 2)		# => 2

計算に float 型が混じっているときは、ほかの型も float 型として計算されます。

print(2 * 4.5 + 1)			# => 10.0
print(type(2 * 4.5 + 1))	# => <class 'float'>

文字列には「+」と「*」の演算子を使うことができます。

  • + 演算子:文字列を結合します。
  • * 演算子:指定した回数、文字列を繰り返します。
# 文字列を結合する
print('Hello' + ' ' + 'World')	# => Hello World

# 文字列を3回繰り返す
print('Python' * 3)				# => PythonPythonPython

優先順位

数学の計算と同じように、「*」や「/」は、「+」や「-」よりも先に計算されます。

計算の順番を変えたいときは()を使います。

print(2 + 3 * 4)	# => 14
print((2 + 3) * 4)	# => 20

算術演算子の優先順位は次のようになります。

  1. **
  2. * 、 / 、 // 、 %
  3. + 、 –

同じ優先順位の演算子があるときは、式の左の演算子が優先されます。

# 左の / を計算してから * を計算する
print(6 / 2 * 3)	# => 9.0

# 左の * を計算してから / を計算する
print(2 * 3 / 6)	# => 1.0

比較演算子

数値の大小比較などをするのが比較演算子です。比較した結果として真偽値(True、False)を返します。

Python では次のような比較演算子が使えます。

  • >:より大きい
  • >=:より大きいか等しい(以上)
  • <:より小さい
  • <=:より小さいか等しい(以下)
  • ==:等しい
  • !=:等しくない
# より大きいか
print(5 > 2)	# => True
print(5 > 10)	# => False

# 以上か
print(5 >= 2)	# => True
print(5 >= 5)	# => True
print(5 >= 10)	# => False

# より小さいか
print(5 < 10)	# => True
print(5 < 2)	# => False

# 以下か
print(5 <= 10)	# => True
print(5 <= 5)	# => True
print(5 <= 2)	# => False

# 等しいか
print(5 == 5)	# => True
print(5 == 2)	# => False

# 等しくないか
print(5 != 2)	# => True
print(5 != 5)	# => False

次のように複数の値を比較することもできます。

print(1 < 3 < 10)			# => True
print(1 < 10 <= 10 < 20)	# => True

# int と float が混じっても問題ありません
print(2.0 <= 2 < 2.1)		# => True

文字列の比較

数値だけでなく文字列も比較することができます。

大文字、小文字は区別され、文字コードが比較基準になります。

print('Python' == 'Python')	# => True
print('Python' != 'Python')	# => False

print('a' < 'b')			# => True
print('a' == 'A')			# => False
print('a' != 'A')			# => True
print('a' < 'A')			# => False
print('a' > 'A')			# => True

print('aaa' < 'aab')		# => True
print('aaa' < 'aaaa')		# => True

論理演算子

「A かつ B のとき」や「A または B のとき」のようなときに使うのが論理演算子です。

Python では次のような論理演算子が使えます。

  • and:論理積
  • or:論理和
  • not:否定

論理積

論理積は、A と B が両方とも True のとき、True を返します。

ABA and B
FalseFalseFalse
FalseTrueFalse
TrueFalseFalse
TrueTrueTrue
print(False and False)	# => False
print(False and True)	# => False
print(True and False)	# => False
print(True and True)	# => True

論理和

論理和は、A か B のどちらかが True のとき、Trueを返します。

ABA or B
FalseFalseFalse
FalseTrueTrue
TrueFalseTrue
TrueTrueTrue
print(False or False)	# => False
print(False or True)	# => True
print(True or False)	# => True
print(True or True)		# => True

否定

否定は、A が True のとき False を返し、False のとき True を返します。

Anot A
FalseTrue
TrueFalse
print(not False)	# => True
print(not True)		# => False

優先順位

論理演算子の優先順位は次のようになります。

算術演算子のときのように演算子の順番を変えたいときは()を使います。

  1. not
  2. and
  3. or
print(False and True or True)		# => True
print(not (False and True) or True)	# => True
print(not False and (True or True))	# => True
print(not (False and True or True))	# => False

演算子の優先順位

算術演算子、比較演算子、論理演算子での優先順位は次のようになります。

  1. ()
  2. **
  3. *、/、//、%
  4. +、-
  5. not、<、<=、>、>=、==、!=
  6. and
  7. or

まとめ

主要な型には、次のようなものがあります。

  • 整数:-5、8、100のような数値
  • 浮動小数点数:-3.5、10.0のような少数のある数値
  • 文字列:「’(シングルクォーテーション)」または「”(ダブルクォーテーション)」で囲ったもの
  • 真偽値:True と False

演算子には、次のようなものがあります。

  • 算術演算子
  • 関係演算子
  • 論理演算子
算術演算子
  • +:加算
  • -:減算
  • *:乗算
  • **:べき乗
  • /:除算(浮動小数点数)
  • //:除算(小数点以下切り捨て)
  • %:剰余
比較演算子
  • >:より大きい
  • >=:より大きいか等しい(以上)
  • <:より小さい
  • <=:より小さいか等しい(以下)
  • ==:等しい
  • !=:等しくない
論理演算子
  • and:論理積
  • or:論理和
  • not:否定

演算子の優先順位は次のようになります。

  1. ()
  2. **
  3. *、/、//、%
  4. +、-
  5. not、<、<=、>、>=、==、!=
  6. and
  7. or

参考

組み込み型

形式ばらない Python の紹介

式 (expression)

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