Pythonで使われる「ビックリマーク(!)」にはいくつかの意味があります。
文脈によって意味が異なりますが、主に次の3つの場面で使われます。
目次
論理否定(not)演算子としての「!」
Pythonの標準文法では、「!」単独で使うことはできませんが、!=
の形で「等しくない」という意味になります。
例
x = 5
if x != 3:
print("xは3ではありません")
これは「xが3と等しくないなら」という意味です。
C言語などでは !x
のように使って「not x」を表しますが、Pythonでは not x
と書きます。
例(正しいPythonの書き方)
x = False
if not x:
print("xは偽です")
Jupyter Notebookなどのマジックコマンドでの「!」
Jupyter Notebookのような対話型Python環境では、!
はシェルコマンド(ターミナルコマンド)を実行するために使われます。
例
!ls
これはLinuxやMac、Windowsのターミナルで使う ls
コマンド(ファイル一覧を表示)をPythonコード内から呼び出す方法です。
他の例
!pip install numpy
これは、Pythonのパッケージをインストールするpip
コマンドを実行します。
重要
この使い方は「Pythonの標準文法」ではなく、Jupyter Notebook特有の拡張機能です。
文字列中での使用(記号として)
ビックリマークは文字列中でただの記号として使うことももちろんできます。
例
message = "Hello, world!"
print(message)
この場合の「!」は、ただの感嘆符であり、特別な意味はありません。
まとめ

用途 | 記号 | 意味 | 備考 |
---|---|---|---|
比較演算子 | != | 等しくない | Python標準 |
論理否定(not) | not | 論理的に否定 | !x はエラーになる |
Jupyterのシェルコマンド呼び出し | ! | ターミナルコマンドを実行する | Jupyter専用 |
文字列中の記号 | ! | 感嘆符など意味的な装飾 | 特別な機能なし |
よくある間違い
if !x:
のように!
単独で否定演算子として使うと SyntaxError になります。- 正しい書き方は
if not x:
です。
- 正しい書き方は
- Jupyter環境以外(通常のPythonファイルなど)で
!ls
のように書くと SyntaxError になります。
参考コード:使い分けのデモ
x = 10
# 標準の比較演算
if x != 5:
print("xは5ではない") # 出力される
# 論理否定
flag = False
if not flag:
print("flagはFalseです") # 出力される
# Jupyterならターミナルコマンド
# !echo Hello ← Jupyter Notebookでのみ使える
以上、Pythonのビックリマークの意味についてでした。
最後までお読みいただき、ありがとうございました。