Address
304 North Cardinal St.
Dorchester Center, MA 02124

Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM

Pythonとセミコロン

【Python入門】Pythonの文とセミコロン「;」についての解説

Pythonでのセミコロンの使い方と、「変数1=X; 変数2=Y」という書き方の意味について説明

今回は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パターンしか起きないということです。

次の画像を見てください。これはコマンドプロント上で実行した結果です。

Pythonでのセミコロンの使い方

(VS Codeなどのエディタ上では上手く動かない可能性があるので、コマンドプロントを使いました)

ifの中の条件を満たしている場合は全てのprint文が実行されています。しかし、それが満たされていない場合は全く実行されていません。つまりオール・オア・ナッシングという感じです。これがセミコロンでの連結のほうがコロンとのつながりよりも強いということです。

逆にセミコロンでの連結のほうがコロンとのつながりよりも弱い場合は、print文が少なくとも1つは実行される可能性があるということです。ですが、Pythonはそのような仕様にはなっていないということです。