Python学習メモ - その4
まえがき
最近、Python を勉強し始めたので、その学習メモです。
今回はビット演算、比較演算、論理演算についてです。
ビット演算
ビット演算はC言語などとほぼ変わらないので、特別異なる点のみ説明します。
シフト演算
print(2 << 3) print(4 >> 2)
実行結果
16 1
2進数で表示してみると、どう動いてるのかがよく分かると思います。
print(bin(2) + " << " + str(3) + " = " + bin(2 << 3)) print(bin(4) + " >> " + str(2) + " = " + bin(4 >> 2))
実行結果
0b10 << 3 = 0b10000 0b100 >> 2 = 0b1
ビット単位の AND
print(1 & 1) print(1 & 0) print(0 & 1) print(0 & 0)
実行結果
1 0 0 0
ビット単位の OR
print(1 | 1) print(1 | 0) print(0 | 1) print(0 | 0)
実行結果
1 1 1 0
ビット単位の XOR
print(1 ^ 1) print(1 ^ 0) print(0 ^ 1) print(0 ^ 0)
実行結果
0 1 1 0
ビット反転
Pythonには整数のビット数制限がないので、C言語などと同じ感覚で使用すると問題が起こることがあるかもしれません。 Pythonでのビット反転は必ず-(x+1)となります。
print(~1)
実行結果
-2
比較演算
比較演算もC言語などと変わらないので、詳細は省略します。 なお、Pythonでは比較演算の結果はbool型(True / False)で返ります。
算術等価
print(1 == 1) print(1 == 2)
実行結果
True False
算術非等価
print(1 != 1) print(1 != 2)
実行結果
False True
小なり
print(1 < 1) print(1 < 2) print() print(1 <= 1) print(1 <= 2)
実行結果
False True True True
大なり
print(1 > 1) print(1 > 2) print() print(1 >= 1) print(1 >= 2)
実行結果
False False True False
論理演算
論理演算はC言語などと比べて機能的には変わりませんが、表記が異なります。
機能 | Python | C系言語 | 備考 |
---|---|---|---|
論理否定 | not | ! | |
論理等価 | is | == | |
論理積 | and | && | |
論理和 | or | || |
論理否定
print(not True) print(not False)
実行結果
False True
論理等価
print(True is True) print(True is False)
実行結果
True False
論理積
print(True and True) print(True and False) print(False and True) print(False and False)
実行結果
True False False False
論理和
print(True or True) print(True or False) print(False or True) print(False or False)
実行結果
True True True False
参考文献
Python 公式リファレンス
https://docs.python.org/ja/3.7/index.html
Python-izm
ゲームを作りながら楽しく学べるPythonプログラミング
ゲームを作りながら楽しく学べるPythonプログラミング (Future Coders(NextPublishing))
- 作者: 田中賢一郎
- 出版社/メーカー: インプレスR&D
- 発売日: 2017/03/24
- メディア: Kindle版
- この商品を含むブログ (1件) を見る
エキスパートPythonプログラミング
エキスパートPythonプログラミング 改訂2版 (アスキードワンゴ)
- 作者: Michal Jaworski,TarekZiade,稲田直哉,芝田将,渋川よしき,清水川貴之,森本哲也
- 出版社/メーカー: ドワンゴ
- 発売日: 2018/02/26
- メディア: Kindle版
- この商品を含むブログを見る