3.

Pythonの演算子

編集

Pythonの演算子の記事です。値の計算・比較・代入・論理判定など、Pythonで使える演算子を種類別に整理しています。

子ページから演算子の種類を選択してください。

本ページの子ページ一覧

項目
算術演算子+, -, *, /, //, %, **
文字列演算子+(連結), *(繰り返し)
代入演算子=, +=, -=, *=, /=
比較演算子==, !=, <, >=, in, is
論理演算子and, or, not
ビット演算子&, |, ^, ~, <<, >>

使用例

# 算術
print(7 / 2)      # 3.5(普通の割り算)
print(7 // 2)    # 3(切り捨て除算)
print(7 % 2)      # 1(剰余)
print(2 ** 10)   # 1024(累乗)

# 文字列
print("ab" + "cd")  # "abcd"
print("-" * 5)     # "-----"

# 比較・論理
print(3 == 3 and 4 > 2)  # True
print("py" in "python")    # True
print(None is None)       # True

# 代入
x = 10
x += 5  # x = 15
x **= 2 # x = 225

Python特有の演算子

演算子意味
//切り捨て除算(整数部のみ)
**累乗
in / not inメンバ判定。リスト・文字列・dict等
is / is not同一オブジェクト判定(参照比較)
:= (walrus)式の中で代入(Python 3.8+)
@行列積(NumPy/Python 3.5+)
and / or / not論理演算(C系の && ではない)

== と is の違い

a = [1, 2, 3]
b = [1, 2, 3]
c = a

print(a == b)  # True(内容が等しい)
print(a is b)  # False(別オブジェクト)
print(a is c)  # True(同じオブジェクト)

# None判定は必ず is で
if x is None:
    pass

演算子の優先順位(抜粋)

優先度演算子
**
+x -x ~x(単項)
* / // %
+ -
比較演算子
not
and
or

意図を明確にするためにも、複雑な式はカッコで囲むのが推奨です。

注意点

  • 論理演算は && ではなく and|| ではなく or! ではなく not
  • 1/20.5(Python 3 では常に float除算)。整数除算は 1//2
  • 連鎖比較が可能: 0 < x < 100 < x and x < 10 の意味
  • and / or は短絡評価。型は最後に評価された値(必ずしも bool ではない)

関連

  • 親カテゴリ: 文法 (Python)
編集
Post Share
子ページ
  1. 算術演算子
  2. 文字列演算子
  3. 代入演算子
  4. 比較演算子
  5. 論理演算子
  6. ビット演算子
同階層のページ
  1. 基本的なルール
  2. 変数
  3. 演算子
  4. 標準ライブラリ
  5. 外部ライブラリ
  6. 制御構文
  7. リスト(配列)
  8. タプル
  9. セット
  10. 辞書(dict)
  11. クラスとメソッド
  12. 継承の概念と必要性
  13. 継承の構文
  14. コンストラクタ
  15. cookieの値の設定と取得
  16. 例外処理
  17. 例外を文字列で出力する方法
  18. httpリクエスト(curl)をする方法
  19. Responseオブジェクトの中身の確認
  20. 変数が空かどうか判定する方法
  21. タイムゾーンの設定と現在日時の取得と文字列化
  22. シングルクォーテーションとダブルクォーテーションの違い