programing tip

파이썬에서 이중 세미콜론이 SyntaxError 인 이유는 무엇입니까?

itbloger 2020. 11. 11. 08:12
반응형

파이썬에서 이중 세미콜론이 SyntaxError 인 이유는 무엇입니까?


세미콜론은 파이썬에서 불필요하다는 것을 알고 있지만 여러 문장을 한 줄에 넣는 데 사용할 수 있습니다.

>>> x = 42; y = 54

저는 항상 세미콜론이 줄 바꿈과 같다고 생각했습니다. 그래서 이중 세미콜론이 SyntaxError라는 사실을 알게되어 조금 놀랐습니다 ( 트위터의 H / t Ned Batchelder ).

>>> x = 42
>>> x = 42;
>>> x = 42;;
  File "<stdin>", line 1
    x = 42;;
           ^
SyntaxError: invalid syntax

나는 마지막 프로그램이 x = 42\n\n. 나는 세미콜론 사이의 진술이 빈 줄로 취급되었다고 생각했을 것입니다. 분명히 아닙니다.

왜 이것이 오류입니까?


파이썬 문법에서, 우리는 볼 수 있습니다 ;로 정의되어 있지 않습니다 \n. 구문 분석기는 뒤에 ;개행이있는 경우를 제외하고 뒤에 다른 명령문을 예상 합니다.

                     Semicolon w/ statement    Maybe a semicolon  Newline
                          \/     \/               \/                \/
simple_stmt: small_stmt (';' small_stmt)*        [';']            NEWLINE

그것이 x=42;;작동하지 않는 이유입니다 . "nothing"은 문장이 아니기 때문에 두 세미콜론 사이에 문장이 없기 때문입니다. 그들 사이에 a pass또는 심지어 a와 같은 완전한 진술이 있다면 0코드가 작동합니다.

x = 42;0; # Fine
x = 42;pass; # Fine
x = 42;; # Syntax error

if x == 42:; print("Yes") # Syntax error - "if x == 42:" isn't a complete statement

pass세미콜론이 있더라도 빈 문에는 여전히 .

>>> x = 42;pass;
>>> x
42

참고 URL : https://stackoverflow.com/questions/36111915/why-is-a-double-semicolon-a-syntaxerror-in-python

반응형