Vscode 파이썬 한줄씩 실행 - vscode paisseon hanjulssig silhaeng

코딩/개발도구(Git, VS Code, etc)

2021. 11. 16.

서론

※ 시간이 없을 경우 본론으로!

VS Code에서 파이썬 스크립트를 실행하는 방법은 다양하다.(서론에서는 전체 스크립트 실행 방법부터 설명한다.)

첫째, 파이썬 스크립트를 열어 둔 상태에서 우측 상단의 Run Python File 버튼을 클릭한다.

Vscode 파이썬 한줄씩 실행 - vscode paisseon hanjulssig silhaeng
세모난 버튼이 Run Python File 버튼이다

둘째, 열려 있는 스크립트 아무 곳에서나 마우스 우클릭 후 Run Python File in Terminal을 클릭한다.

좌측의 파일탐색기에서 실행하고 싶은 파일 위에서 마우스 우클릭을 해도 같은 메뉴가 나온다.

Vscode 파이썬 한줄씩 실행 - vscode paisseon hanjulssig silhaeng

셋째, 터미널 창을 열고 python {파일이름} 명령어를 입력한다. 파일 이름이 myscript.py인 경우 python myscript.py를 입력하면 된다.

이렇게 다양한 방법이 있지만, 사실 이 중에 한 가지만 알면 되겠다.

그런데 스크립트 전체가 아니라 한줄씩 실행하고 싶을 땐 어떻게 하면 될까?

본론

무언가 프로그램을 짜보려고 할 때 전체 스크립트를 한번에 다 쓰기보다는 한줄한줄 되는지 확인해가며 쓰고 싶을 때가 있다.(사실 항상 그렇다.)

그러려면 코드를 한줄내지 한 블럭씩 실행할 수가 있어야 한다.

스크립트 전체를 실행하는 방법이 여러가지이듯이 일부분만 실행하는 방법도 여러 가지가 있다.

첫째, Shift + Enter를 이용하는 방법이다.

실행하고자 스크립트에 커서를 둔 채로 Shift + Enter를 눌러보자. 

그러면 터미널이 열리면서 파이썬 교재나 다른 학습 자료에서 흔히 보았을 프롬프트(>>>)가 나올 것이다.

이 화면을 대화형 인터프리터라고 불렀던 것 같다.

Vscode 파이썬 한줄씩 실행 - vscode paisseon hanjulssig silhaeng
Shift + Enter 입력 시 터미널에 나타나는 대화형 인터프리터

Python.exe파일을 실행하면 나오는 창과 같다.

그 상태에서, 실행하고자 하는 라인에 커서를 두고 Shift + Enter를 누르면 프롬프트에 코드가 입력된다.

여러 줄을 한번에 실행하려면 블록을 설정한 채로 Shift + Enter를 누르면 된다.

물론 프롬프트에다가 바로 입력을 해도 된다.

둘째, 실행하고 싶은 라인에서 마우스 우클릭한 뒤에 Run Selection/Line in Python Terminal을 선택해도 Shift + Enter한 것과 같다.

셋째, VS Code의 interactive window를 활용하는 방법이다.

스크립트에 # %%를 입력해보자.

아래와 같이 Run Cell 등의 표시가 나타날 것이다.

Vscode 파이썬 한줄씩 실행 - vscode paisseon hanjulssig silhaeng

# %%를 한번 입력할 때마다 주피터노트북(Jupyter Notebook)처럼 셀이 나뉘고, 셀별로 코드를 실행할 수 있다.

코드를 실행하는 방법도 주피터노트북과 같다. Run Cell 버튼을 눌러도 되고, Ctrl + Enter, Shift + Enter 등 단축키도 사용할 수 있다.

넷째, 주피터노트북 파일(.ipynb)로 스크립트를 짠 뒤에 완성이 되면 파이썬(.py) 파일로 옮기는 방법도 있다.

옮기는 방법은 두 가지가 있는데, 모든 셀을 선택한 상태에서 복사한 뒤 파이썬 파일에 붙여넣을 수 있다.

또 한 가지 방법은, 주피터노트북의 Export 기능을 활용하는 것이다.

아래 그림과 같이 화면 상단의 Variables 버튼 옆의 '기타 작업' 버튼을 누른 뒤 Export를 선택하고, Python Script를 선택하면 된다.

Vscode 파이썬 한줄씩 실행 - vscode paisseon hanjulssig silhaeng

Export 기능으로 변환할 경우에는 위에서 설명한 interactive window와 같이 셀이 구분된 상태로 변환이 된다.