【python】bool型について(or・and・not・xor)
bool型の基本
bool型(論理型)は一般的にboolean(ブーリアン)型と呼ばれるものと同じです。
変数の型の一つで特徴として真(True)か偽(False)の2つの状態しかないものです。
他のプログラミング言語では1か0かで表現されるものもあります。
他言語のである人は「真(True) = 1」 ・ 「偽(False) = 0」 と考えて問題ありません。
プログラミング初心者には 2種類の状態しかない変数など何に使用するのかイメージが難しいかもしれませんが、条件判定を行うIF文やループ処理を行うwhile文に与える値として使用されます。
非常に頻繁に使用する為、bool型を理解することは重要です。
入力値として与えるときは、文字で「True」、「False」を入力します。
ソースコード
def sample1():
a = True
b = False
print( "a = ", a, type(a) )
print( "b = ", b, type(b) )
実行結果
a = True <class 'bool'>
b = False <class 'bool'>
or演算(論理和)について
or演算(論理和)は名前の通り、bool型(論理型)同士の足し算を行います。
普通の足し算と同じように足し合わせる変数に一つでも1(論理型としてはTrue)があると結果も1 (True) となります。
唯一異なるとすれば「1(True) + 1(True) = 1(True)」となり、上限が決まっていることです。
x or y | x | y |
False | False | False |
True | True | False |
True | False | True |
True | True | True |
ソース上の表記では「or」を使用して演算を行います。
ソースコード
def sample2():
a = False or False
b = True or False
c = False or True
d = True or True
print( a ," = False or False")
print( b ," = True or False")
print( c ," = False or True")
print( d ," = True or True")
実行結果
False = False or False
True = True or False
True = False or True
True = True or True
and演算(論理積)について
and演算(論理積)は名前の通り、bool型(論理型)同士の乗算を行います。
普通の乗算と同じように掛け合わせた変数に一つでも0(論理型としてはFalse)があると結果も0 (False) となります。
x and y | x | y |
False | False | False |
False | True | False |
False | False | True |
True | True | True |
ソース上の表記では「and」を使用して演算を行います。
ソースコード
def sample3():
a = False and False
b = True and False
c = False and True
d = True and True
print( a ," = False and False")
print( b ," = True and False")
print( c ," = False and True")
print( d ," = True and True")
実行結果
False = False and False
False = True and False
False = False and True
True = True and True
not演算(論理否定)について
not演算(論理否定)は真偽を反転させる計算になります。
2つ以上の変数を計算するものでなく、単一変数に対して計算します。
演算結果
・True(真) → False(偽)
・False(偽) → True(真)
ソース上の表記では「not」を使用して演算を行います。
ソースコード
def sample4():
a = not False
b = not True
print( a ," = not False")
print( b ," = not True")
実行結果
True = not False
False = not True
結果は反転してFalse(偽)だったものはTrue(真)となり、True(真)だったものはFlase(偽)となります。
xor演算(排他的論理和)
xor演算は同じ入力値を与えるとFalse(偽),異なる入力値を与えるとTrue(真)となります。
プログラミングを学ぶと一度は見る機会があるものですが、ほかの演算方法(and,or,not)と違って唯一python3でキーワードが設定ありません。 ビット演算子としての「^」を使用して演算します。
z xor y | x | y |
False | False | False |
True | False | True |
True | True | False |
False | True | True |
ソース上の表記では「^」を使用して演算を行います。
def sample5():
a = False ^ False
b = True ^ False
c = False ^ True
d = True ^ True
print( a ," = False ^ False")
print( b ," = True ^ False")
print( c ," = False ^ True")
print( d ," = True ^ True")
False = False ^ False
True = True ^ False
True = False ^ True
False = True ^ True
3つ以上同時に計算した場合
論理演算の計算順序は前の方からです。
もちろん、括弧を使用すると優先順位は早くなります。
ソースコード
def sample6():
t = True
f = False
a = f and f or t
b = f or f and t
c = f and ( f or t )
d = f and t or not f
e = f and ( t or not f )
f = t ^ t and f
g = t ^ ( t and f )
print( a ," = False and False or True")
print( b ," = False or False and True")
print( c ," = False and ( False or True )" )
print( d ," = False and True or not False")
print( e ," = False and ( True or not False")
print( f ," = True ^ True and False ")
print( g ," = True ^ ( True and False )")
実行結果
True = False and False or True
False = False or False and True
False = False and ( False or True )
True = False and True or not False
False = False and ( True or not False
False = True ^ True and False
True = True ^ ( True and False )
ソースコードはこちらから
このページで紹介している記事のソースコードの販売を行っています。
python基本を押さえたソースコードを収録しています。
購入頂いたソースコードは商用利用OKになります。
最近のコメント