Python入門トップページ


目次

  1. プログラミング言語
  2. Anaconda - Jupyter Notebook / JupyterLab の環境設定
  3. Python の基礎
  4. リスト,タプル,辞書,集合
  5. 再び Jupyter Notebook の操作
  6. Python の制御構文
  7. 関数
  8. 便利な関数など
  9. リストの内包表記
  10. 多次元リスト
  11. クラス
  12. 演習問題
  13. 雑多な情報

Python の基礎

雑多な情報

論理演算(論理積・論理和・排他的論理和)を行う

目次に戻る

論理積

論理積は A と B の両方が 1 のときに 1 をとなる論理演算です.

logical-and

Python で論理積を得るには & 演算子を使います.まずは,変数 ab に値を代入します.


a = 0b01110101 # 117
b = 0b01001011 # 75
print(a, b)
117 75

a の値を 2 進数で表示します.


bin(a)
'0b1110101'

b の値を 2 進数で表示します.


bin(b)
'0b1001011'

論理積の結果を 2 進数で表示します.


bin(a & b)
'0b1000001'

次の方法では論理積の結果を 10 進数で表示します.


a & b
65

計算結果を見やすく表示してみます.


print(bin(a))
print(bin(b))
print('---------')
print(bin(a & b))
0b1110101
0b1001011
---------
0b1000001

目次に戻る

論理和

論理和は A または B が 1 のときに 1 をとなる論理演算です.

logical-or

論理和を得るには | 演算子を使います.


a = 0b01110101 # 117
b = 0b01001011 # 75
bin(a | b)
'0b1111111'

計算結果を見やすく表示してみます.


print(bin(a))
print(bin(b))
print('---------')
print(bin(a | b))
0b1110101
0b1001011
---------
0b1111111

目次に戻る

排他的論理和

排他的論理和は A と B の値が異なるときに 1 をとなる論理演算です.繰り上がりのない足し算とも考えられます.つまり,1 + 1 = 10 ですが,繰り上がりがないので 0 になります.

logical-xor

排他的論理和を得るには ^ 演算子を使います.


a = 0b01110101 # 117
b = 0b01001011 # 75
bin(a ^ b)
'0b111110'

少し見やすくなるようにしてみましょう.計算の結果が 6 桁になってしまうので,若干見にくくなってしまいます.


print(bin(a))
print(bin(b))
print('---------')
print(bin(a ^ b)) # 6桁になるので注意
0b1110101
0b1001011
---------
0b111110

次のようにすると桁が揃って見やすくなります.


print('{:#010b}'.format(a))
print('{:#010b}'.format(b))
print('----------')
print('{:#010b}'.format(a ^ b))
0b01110101
0b01001011
----------
0b00111110

あるいは f 文字列を使って桁が揃えることも可能です.


print(f'{a:#010b}')
print(f'{b:#010b}')
print('----------')
print(f'{a^b:#010b}')
0b01110101
0b01001011
----------
0b00111110

目次に戻る