今回はPythonにおけるセミコロン「;」の使い方の解説で、「文1; 文2;」という書き方の説明です。まずはいつものように公式説明を見てみましょう。
公式説明
複数の単純文をセミコロンで区切って入れることができます
Python公式ドキュメント:単純文
という記載があります。
Pythonの「文」は、次の2種類があります。
- 式(評価された結果、なんらかの値が返されるもの)から構成されるもの
- キーワードから構成されるされるもの
そして単純文とは、コードエディタ上で1行で表現される文のことです。
こう書くとややこしそうですが、次の具体例を見てもらうとすぐにわかると思います。
具体例と注意点
例
if文の中に単純文を使う複合文(文の中に文)の例を見てみましょう。
if x < y < z:
print(x);
print(y);
print(z)
ここでコロンの後に、セミココロンによってprint文が3つつながっています。1つ1つのprint文は単純文です。それがセミコロンによって3つ連結されています。ifからprint(z)までで「1行」です。これがセミコロンの使い方です。
セミコロンでつなげない普通の書き方だと、
if x < y < z:
print(x)
print(y)
print(z)
となります。
注意点
この書き方の場合、1つ注意点がありまして、それは、
このコンテキスト中では、セミコロンによる結合はコロンより強いです
Python公式ドキュメント:複合文
ということです。これはどういうことかというと、セミコロンでつながっている
print(x);print(y);print(z)
これら3つのprint文が1つのものとして扱われるということです。それを仮にAでもすると、
if x < y < z:
A
ということです。こう考えると、Aはifの条件が満たされれば、
- Aが実行される
- Aは実行されない
の2パターンしかありません。
すなわち、Aの中身である「print(x);print(y);print(z)」が、
- 3つのprint文が全て実行される
- 全て実行されない
この2パターンしか起きないということです。
次の画像を見てください。これはコマンドプロント上で実行した結果です。

(VS Codeなどのエディタ上では上手く動かない可能性があるので、コマンドプロントを使いました)
ifの中の条件を満たしている場合は全てのprint文が実行されています。しかし、それが満たされていない場合は全く実行されていません。つまりオール・オア・ナッシングという感じです。これがセミコロンでの連結のほうがコロンとのつながりよりも強いということです。
逆にセミコロンでの連結のほうがコロンとのつながりよりも弱い場合は、print文が少なくとも1つは実行される可能性があるということです。ですが、Pythonはそのような仕様にはなっていないということです。
世界最大の動画学習サイトUdemyのおすすめPython講座【PR】
- AWSで作るWEBアプリケーション 実践講座
- 現役シリコンバレーエンジニアが教えるPython
3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
- 独学で身につけるPython〜基礎編〜【業務効率化・自動化で残業を無くそう!】
- 【完全初心者向け】絶対に挫折させないPython入門講座
- 【ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門
- はじめてのPython 少しずつ丁寧に学ぶプログラミング言語Python3のエッセンス
- 【世界で55万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜
- 現役シリコンバレーエンジニアが教えるアルゴリズム・データ構造・コーディングテスト入門