Address
304 North Cardinal St.
Dorchester Center, MA 02124
Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM
Address
304 North Cardinal St.
Dorchester Center, MA 02124
Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM
今回は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の条件が満たされれば、
の2パターンしかありません。
すなわち、Aの中身である「print(x);print(y);print(z)」が、
この2パターンしか起きないということです。
次の画像を見てください。これはコマンドプロント上で実行した結果です。
(VS Codeなどのエディタ上では上手く動かない可能性があるので、コマンドプロントを使いました)
ifの中の条件を満たしている場合は全てのprint文が実行されています。しかし、それが満たされていない場合は全く実行されていません。つまりオール・オア・ナッシングという感じです。これがセミコロンでの連結のほうがコロンとのつながりよりも強いということです。
逆にセミコロンでの連結のほうがコロンとのつながりよりも弱い場合は、print文が少なくとも1つは実行される可能性があるということです。ですが、Pythonはそのような仕様にはなっていないということです。