복붙노트

[PYTHON] 이 파이썬 스 니펫에서 세미콜론이 허용되는 이유는 무엇입니까?

PYTHON

이 파이썬 스 니펫에서 세미콜론이 허용되는 이유는 무엇입니까?

파이썬은 세미콜론을 사용하여 문장을 종료하지 않습니다. 그렇다면이 이유는 무엇입니까?

import pdb; pdb.set_trace()

해결법

  1. ==============================

    1.파이썬은 명령문을 종료하기 위해 세미콜론을 요구하지 않습니다. 동일한 행에 여러 명령문을 넣으려는 경우 세미콜론을 사용하여 명령문을 구분할 수 있습니다.

    파이썬은 명령문을 종료하기 위해 세미콜론을 요구하지 않습니다. 동일한 행에 여러 명령문을 넣으려는 경우 세미콜론을 사용하여 명령문을 구분할 수 있습니다.

    자, 왜 이것이 허용됩니까? 그것은 단순한 디자인 결정입니다. 나는 파이썬이이 세미콜론을 필요로한다고 생각하지 않는다. 그러나 누군가는 그것을 가지고 언어에 추가하는 것이 좋을 것이라고 생각했다.

  2. ==============================

    2.http://docs.python.org/reference/compound_stmts.html

    http://docs.python.org/reference/compound_stmts.html

    요약 :

    compound_stmt ::=  if_stmt
                       | while_stmt
                       | for_stmt
                       | try_stmt
                       | with_stmt
                       | funcdef
                       | classdef
                       | decorated
    suite         ::=  stmt_list NEWLINE | NEWLINE INDENT statement+ DEDENT
    statement     ::=  stmt_list NEWLINE | compound_stmt
    stmt_list     ::=  simple_stmt (";" simple_stmt)* [";"]
    
  3. ==============================

    3.파이썬은; 분리 기호가 아닌 종결 자로 사용됩니다. 또한 문장의 끝에서 문장의 종결 자처럼 보이게 할 수 있지만, 파이썬에서는 공백의 문장이 합법적이기 때문에 합법적입니다. 끝에 세미콜론을 포함하는 줄은 두 문장입니다. 두 번째 문장 하나의 빈.

    파이썬은; 분리 기호가 아닌 종결 자로 사용됩니다. 또한 문장의 끝에서 문장의 종결 자처럼 보이게 할 수 있지만, 파이썬에서는 공백의 문장이 합법적이기 때문에 합법적입니다. 끝에 세미콜론을 포함하는 줄은 두 문장입니다. 두 번째 문장 하나의 빈.

  4. ==============================

    4.답변을 읽은 후에도 세미콜론을 사용하는 데 중요한 한 가지면을 놓쳤습니다. 아마도 실제로 차이를 만드는 유일한 곳일 수 있습니다.

    답변을 읽은 후에도 세미콜론을 사용하는 데 중요한 한 가지면을 놓쳤습니다. 아마도 실제로 차이를 만드는 유일한 곳일 수 있습니다.

    인터프리터 REPL (Python 대화 형 쉘, IDLE, ipython)에서 작업 할 때 마지막 표현식의 값이 화면에 인쇄되고 대개 이것은 의도 한 동작입니다.

    그러나 경우에 따라 matplotlib에 의해 플롯 된 시뮬레이션 결과를보기 위해 부작용에 대해서만 표현식을 평가하려고합니다.

    이 경우 matplotlib 함수에 대한 호출에 의해 반환되는 matplotlib 객체 repur의 화면을 보지 않으려 고합니다. 가능성 중 하나는 지나치게 자세한 명령문에 세미콜론을 추가하는 것입니다. 즉시 matplotlib 호출과 null 문 두 가지 표현식으로 구성되어 복합 표현식의 값이 None이고 인터프리터가 화면에 아무 것도 인쇄하지 않습니다. (다른 가능성은 _ = plot (...)에서와 같이 할당이지만, 좀 더 관입 적이라는 것을 알 수 있습니다.)

    IMHO, 인터 프리 터에서 원하는 결과물을 표시하지 않으려는 세미콜론의 사용은 설명서 및 최종 재사용을위한 인터프리터 세션의 그래픽 출력을 포함하여 입력 및 출력을 저장할 수있게 해주는 IPyton 노트북의 도입에 따라보다 적절 해졌습니다 .

  5. ==============================

    5.다른 사람들처럼 세미콜론을 사용하여 문장을 구분할 수 있습니다. 당신은 할 필요가 없으며, 일반적인 스타일이 아닙니다.

    다른 사람들처럼 세미콜론을 사용하여 문장을 구분할 수 있습니다. 당신은 할 필요가 없으며, 일반적인 스타일이 아닙니다.

    왜 이것이 유용한 지에 관해서는, 사람들은 한 줄에 두 개 또는 그 이상의 사소한 짧은 문장을 넣기를 좋아합니다. (개인적으로는이 문장을 여러개의 간단한 문장으로 간단하게 구분하여 하나의 복잡한 모양의 줄로 바꾸고 사소한 것을 더 어렵게 만듭니다) .

    그러나 파이썬 -c ''를 사용하여 쉘에서 파이썬 하나의 라이너를 호출 할 때 거의 필수 사항입니다. 여기에서는 들여 쓰기를 사용하여 문장을 구분할 수 없으므로 하나의 라이너가 실제로 2 라이너 인 경우 세미콜론을 사용해야합니다. 그리고 하나의 라이너에서 다른 인수를 사용하려면 별도의 import 문이 필요한 sys.argv에 sys를 가져와야합니다. 예 :

    python -c "import sys; print ' '.join(sorted(sys.argv[1:]))" 5 2 3 1 4
    1 2 3 4 5
    
  6. ==============================

    6."Pythons 공격 때"에서 인용

    "Pythons 공격 때"에서 인용

  7. ==============================

    7.세미콜론을 한 줄에 여러 개 넣을 경우 구분 기호로 사용할 수 있습니다. 예를 들면 다음과 같습니다. http://docs.python.org/reference/compound_stmts.html 귀하의 경우 디버거에 침입하기 쉬운 지점을 삽입 할 수 있습니다.

    세미콜론을 한 줄에 여러 개 넣을 경우 구분 기호로 사용할 수 있습니다. 예를 들면 다음과 같습니다. http://docs.python.org/reference/compound_stmts.html 귀하의 경우 디버거에 침입하기 쉬운 지점을 삽입 할 수 있습니다.

    또한 Mark Lutz가 Learning Python Book에서 언급했듯이 모든 문장을 세미콜론으로 종료하는 것은 기술적으로는 불필요하고 성가시다.

  8. ==============================

    8.파이썬은 한 줄에 둘 이상의 명령문을 포함하는 경우 세미콜론을 사용하여 명령문의 끝을 나타냅니다.

    파이썬은 한 줄에 둘 이상의 명령문을 포함하는 경우 세미콜론을 사용하여 명령문의 끝을 나타냅니다.

  9. ==============================

    9.세미콜론은 한 줄에 두 개 이상의 명령을 사용할 수 있습니다. 사용하지 않아도되지만 제한되지 않습니다.

    세미콜론은 한 줄에 두 개 이상의 명령을 사용할 수 있습니다. 사용하지 않아도되지만 제한되지 않습니다.

    http://www.tutorialspoint.com/python/python_basic_syntax.htm

  10. ==============================

    10.세미콜론 (점, 쉼표 및 괄호와 같은)은 종교적 전쟁을 일으키는 경향이 있습니다. 그럼에도 불구하고 그것들 (또는 유사한 기호)은 여러 가지 이유로 모든 프로그래밍 언어에서 유용합니다.

    세미콜론 (점, 쉼표 및 괄호와 같은)은 종교적 전쟁을 일으키는 경향이 있습니다. 그럼에도 불구하고 그것들 (또는 유사한 기호)은 여러 가지 이유로 모든 프로그래밍 언어에서 유용합니다.

    관찰 : 구조를 강조하기 위해 들여 쓰기가 시작되고 끝나는 곳을 볼 수있는 "시각적 인 통치자"역할을하는 명백한 방식으로 들여 쓰기가 수직선으로 보강 / 대체 될 수 있습니다. 여러 색상 (예 : 레지스터의 색상 코드를 따르는 색상)은 군집을 보상 할 수 있습니다.

  11. ==============================

    11.세미콜론은 유효한 문법의 일부입니다 : 8. 복합 문 (The Python Language Reference)

    세미콜론은 유효한 문법의 일부입니다 : 8. 복합 문 (The Python Language Reference)

  12. ==============================

    12.저는 오래된 C 프로그래머로 편향되어 있다는 것을 알고 있습니다 만, 다양한 파이썬 규칙에 따라 일이 어려워지는 경우가 있습니다. 들여 쓰기 규칙은 때로는 조금 성가심을 느낍니다.

    저는 오래된 C 프로그래머로 편향되어 있다는 것을 알고 있습니다 만, 다양한 파이썬 규칙에 따라 일이 어려워지는 경우가 있습니다. 들여 쓰기 규칙은 때로는 조금 성가심을 느낍니다.

    가끔 문이나 블록이 끝나는 시점을 명확히하는 것이 매우 유용합니다. 표준 C 코드는 다음과 같이 읽습니다.

    for(i=0; i<100; i++) {
        do something here;
        do another thing here;
    }
    
    continue doing things;
    

    공백 문자를 사용하여 명확성을 높여줍니다. 루프가 끝나는 곳을 쉽게 볼 수 있습니다.

    파이썬은 (옵션) 세미콜론으로 끝낼 수 있습니다. 위에서 언급했듯이 'null'문 다음에 실행할 명령문이 있음을 의미하지는 않습니다. 그래서, 예를 들어,

    print(x);
    print(y);
    

    와 같다

    print(x)
    print(y)
    

    첫 번째 행에 각 행의 끝에 null 문이 있다고 생각되면 제안한대로 시도해보십시오.

    print(x);;
    

    구문 오류가 발생합니다.

    개인적으로 많은 중첩 및 많은 인수 및 / 또는 긴 이름의 args가있는 함수를 사용하면 코드를 더 쉽게 읽을 수 있도록 세미콜론을 찾습니다. 그래서 내 눈에는 다른 선택보다 훨씬 명확합니다.

    if some_boolean_is_true:
        call_function(
            long_named_arg_1,
            long_named_arg_2,
            long_named_arg_3,
            long_named_arg_4
        );
    

    왜냐하면 나에게 그것은 마지막 ')'이 여러 줄을 뛰어 넘는 '블록'을 끝내는 것을 알게 해주기 때문입니다.

    개인적으로 PEP 스타일 가이드 라인, IDE를 강화하는 데 많은 부분이 있다고 생각합니다. '일을하는 유일한 방법'이 있다고 믿습니다. 후자를 믿는다면, 숫자의 형식을 지정하는 방법을 살펴보십시오 : 지금까지 파이썬은 네 가지 다른 방법을 지원합니다.

    필자는 일부 철저지에 의해 불타 오르게 될 것이라고 확신하지만, 컴파일러 / 인터프리터는 인수의 길이가 길거나 짧은 지 신경 쓰지 않습니다. 그러나 파이썬의 들여 쓰기 규칙에 대해서는 공백을 고려하지 않습니다. 코드의 가장 큰 문제점은 진행중인 작업, 시작 및 종료 작업 등을 이해하기 위해 다른 사람 (몇 달 동안 작업 한 후에도)에게 명확성을 부여하는 것입니다.

  13. from https://stackoverflow.com/questions/8236380/why-is-semicolon-allowed-in-this-python-snippet by cc-by-sa and MIT license