web-dev-qa-db-ja.com

セミコロンは何をしますか?

現在のプロジェクトを支援する機能をオンラインで取得しましたが、一部の行にセミコロンがありました。なぜだろうか?機能を壊すことですか?

def containsAny(self, strings=[]):
    alphabet = 'abcdefghijklmnopqrstuvwxyz0123456789'
    for string in strings:
        for char in string:
            if char in alphabet: return 1;
    return 0;

私はほとんど変更せずにオンラインになった機能:

for string in strings:
    for char in string:
        if char in alphabet: return 1;

上記は次のことを言っていますか?

if char in alphabet:
    return 1
    break
45
Crispy

セミコロンは、表示するコードでは何もしません。

これは、ステートメントの最後にセミコロンを必要とする別の言語(C、Javaなど)でプログラミングする人であり、単なる習慣であると思われます(私にも時々起こります)。

複数のPythonステートメントを同じ行に配置する場合は、セミコロンを使用してそれらを区切ることができます。これを参照してください Python Doc

スイートは、句によって制御されるステートメントのグループです。スイートは、ヘッダーのコロンに続く、ヘッダーと同じ行にセミコロンで区切られた1つ以上の単純なステートメント、または後続の行に1つ以上のインデントされたステートメントにすることができます

86
Levon

ここのセミコロンは何もしません。 C/C++/Java /(他の多くの言語)のバックグラウンドを持つ人々は、習慣からセミコロンを使用する傾向があります。

17
arshajii

C、C++、およびJavaのプログラマーは、セミコロンを使用して、これがステートメントの終わりであることをコンパイラーに伝える習慣がありますが、Pythonそうではありません。

その理由は、Pythonでは改行がコード行を明確に分離する方法だからです。これは設計によるものであり、この仕組みは徹底的に検討されています。その結果、Pythonコードは、改行を除いて)特別なステートメント終了マーカーなしで完全に読み取り可能で明確です。

1
Abrar Ahmad

他の回答が指摘しているように、セミコロンはそこで何もしません。区切り文字です(例、_print 1;print 2_)。しかし、次のようには機能しません:def func():print 1;print 2;;print'Defined!'(_;;_は構文エラーです)。習慣から、人々はそれを使用する傾向があります(C/Javaなどの言語で必要とされるため)。

0
EKons