본문 바로가기

개발하자

IPython 및 Jupyter Notebook에서 함수 호출 전 세미콜론을 사용하는 이상한 동작

반응형

IPython 및 Jupyter Notebook에서 함수 호출 전 세미콜론을 사용하는 이상한 동작

나는 주피터 노트북을 사용하는 이상한 행동을 우연히 발견했고, 만약 있다면, 그 목적이 무엇인지 궁금했다. 함수 호출 전에 세미콜론을 입력하면 함수 이름 뒤의 모든 코드를 반영하는 문자열에 함수를 적용한 결과를 얻을 수 있습니다. 예를 들어, 이렇게 하면 다음과 같은 결과를 얻을 수 있습니다.

In [138]:    ;list('ab')
Out[138]:
['(', "'", 'a', 'b', "'", ')']

나는 주피터를 아이피톤 4와 함께 사용하고 있다. 그것은 주피터 노트북뿐만 아니라 아이피톤에서도 발생한다.

그것은 의도된 것이고, 만약 그렇다면, 왜?




함수 인수의 자동 인용을 위한 명령입니다.

설명서에서 다음을 참조하십시오.

, 또는 ;를 선의 첫 문자로 사용하여 함수의 인수를 강제로 따옴표로 묶을 수 있습니다. 예:

In [1]: ,my_function /home/me  # becomes my_function("/home/me")

';'를 사용하면 전체 인수가 하나의 문자열로 따옴표로 묶이고 ','는 공백으로 분할됩니다.

In [2]: ,my_function a b c    # becomes my_function("a","b","c")

In [3]: ;my_function a b c    # becomes my_function("a b c")

', 또는 ';'는 줄의 첫 번째 문자여야 합니다! 이것은 작동하지 않을 것이다.

In [4]: x = ,my_function /home/me # syntax error

사용자의 경우 및 를 포함한 모든 문자를 따옴표로 묶습니다.

여기서도 유사한 출력을 얻을 수 있지만 작은 따옴표는 사용하지 않습니다.

In [279]:
;list(ab)

Out[279]:
['(', 'a', 'b', ')']

반응형