반응형
파이썬에서 이중 세미콜론이 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
반응형
'programing tip' 카테고리의 다른 글
Mac없이 iOS 용 PhoneGap 앱을 만들 수 있습니까? (0) | 2020.11.12 |
---|---|
클라이언트 측 JavaScript에서 Express.js 로컬 변수에 액세스 (0) | 2020.11.12 |
svn 및 / 또는 git에서 파일을 "버전 해제"하는 방법 (0) | 2020.11.11 |
Java Reflection : 구현 클래스 만들기 (0) | 2020.11.11 |
테스트 / 예시 용으로 예약 된 사회 보장 번호가 있습니까? (0) | 2020.11.11 |