반응형

VScode에서 C & C++ 코드 실행 시 한글 깨지는 현상을 해결하는 방법에 대한 기본적인 VScode 설정은 아래를 먼저 참고해 보세요.    그리고  그 방법 이 외에 코드를 작성할 때 방지하는 코드 라인을 작성하는 방법에 대해 소개하려 해요. 

 

#include <windows.h>
 
#pragma execution_character_set("utf-8")
 
    SetConsoleOutputCP(65001);

위,  3개의 라인을 추가하면 되는데요,  아래 예시 코드를 참고해 보세요.

#include <iostream>
#include <windows.h>
using namespace std;
 
#pragma execution_character_set("utf-8")
 
int main(){
    SetConsoleOutputCP(65001);
    int a;
    int b;
    int c;
 
    cin >> a;
    cin >> b;
 
    cout << "입력 a: " << a << endl;
    cout << "입력 b: " << b << endl;
    cout << "결과 c: " << a+b << endl;
    return 0;
}

그리고 결과를 실행해 보면,  아래처럼 한글 깨짐 없이 잘 출력되는 것을 볼 수 있습니다. 

 

반응형
반응형

 VS-Code 】  VS code 한글 폰트 깨짐 문제 해결 (How to fix Korean font broken problem in VScode)

안녕하세요~
  VScode를 사용할 때, 한글을 코드에 입력하고 출력하게 될 경우, 터미널(Terminal) 창 혹은 코드 작성 창 등에서 한글이 깨져 출력되는 경우가 발생하는데요,  이 문제를 해결하는 방법에 대해 다루겠습니다.

 우선, VScode에서 한글이 깨지는 경우는 주로 코드 내에 입력되는 한글이 깨지는 경우와 결과 입출력을 위한 터미널 및 Output 영역의 한글 출력이 깨지는 경우로 볼 수 있습니다. 
 예를들어,  한글이 입력된 코드를 컴파일하고 실행해보면, 아래와 같은 한글 폰트 깨짐 현상이 발생합니다.

VScode에서 터미널창으로 결과 출력시(실행) 한글 폰트가 깨져 출력되는 현상

VScode에서 터미널 창으로 결과 출력 시(실행) 한글 폰트가 깨져 출력되는 현상입니다.
문제 해결을 위한 첫 번째 방법으로는, VScode는 기본(default) 언어 설정이 UTF-8로 되어 있는데요, 이 설정을 한글 코드(EUC-KR)로 바꾸어 주면 됩니다.

위, 이미지에서 UTF-8 부분을 더블 클릭하게 되면,  화면 상단에 뜨는 Reopen with Encoding을 클릭하세요.
나타나는 목록을 아래로 스크롤 해보면 Korean (EUC-KR)이 보이는데, 이것을 선택해 주면 됩니다.

그러면 아래처럼, VScode 프로그램의 화면 하단 파란색 작업 표시 영역에,  조금 전 ‘UTF-8’이 ‘EUC-KR’로 바뀐 것을 볼 수 있습니다.

 

그런데, 문제는 아래 이미지 처럼, 코드 부분이 오히려 깨져 보이는데요,


당황하지는 마세요. 실제 깨진 것은 아니어서, Ctrl+Z키를 한 번 눌러주면 정상적으로 잘 보입니다. 

그리고 실행(Ctrl+R)시켜 보면, 터미널 창에도 한글이 깨지지 않고 잘 표시되는 것을 볼 수 있습니다. 

우선, 다시 원래대로 돌려 놓고 다음 설명을 이어갈게요. 
방금 설정한 방법은 작성하고 있는 C 코드 파일별로 설정이 가능한 방법인데요,
그 말은, 한글이 사용되는 파일마다 설정을 해야 해서 매우 불편하다는 말입니다.
그래서,  자동으로 언어 코드를 감지해서 한글이면 EUC-KR 모드로 바꾸어 주는 설정을 해볼게요.

먼저, 아래 이미지처럼, 직접 톱니바퀴 모양의 설정 버튼 혹은, 메뉴에서 설정 Settings (Ctrl + , ) 메뉴를 클릭합니다.

이어서 뜨는 설정 검색창에 검색창에  encoding 으로 검색합니다. 

그리고, 아래 이미지 표시 부분의 Files: Encoding 부분은 디폴트 Encoding 값을 정해주는 부분입니다. 

그런데, 이부분의 디폴트 Encoding 값은 ‘UTF-8’ 그대로 두도록 하겠습니다. 
그리고 아래 처럼,  ‘Auto Guess Encoding’ 부분을 체크해 주면 되는데요.  한글이 사용이 안 된 코드 파일은 디폴트 인코딩 값인 UTF-8로 처리함으로써 문제가 없도록 하고,  만약, 한글이든 기타 언어가 감지되면 해당 언어의 인코딩 설정이 자동으로 적용되도록 하는 옵션입니다. 

Auto Guess Encoding 부분을 체크해주세요.

아래 이미지는 ‘Auto Guess Encoding’ 부분을 체크 후,  한글이 없는 파일은 VScode의 파란색 작업표시줄에 보면, 기본 UTF-8로 설정이 되어 있는 것을 알 수 있고요, 


아래 이미지처럼, 한글이 포함된 코드를 작성하게 되면, 자동으로 언어를 감지하여, EUC-KR이 선택되도록 하여, 
코드 내용이 깨지지 않도록 하고 있습니다. 

 

 

 

② 한글 깨짐 해결 방법 2


그리고,  또 한가지 VScode에서의 인코딩 설정 방법 외에, 윈도 10에서 제공하는 기능을 통해 한글이 깨지지 않게 출력되도록 해 볼게요. 
 윈도 검색창에서 제어판을 검색 후 실행합니다. 


아래 이미지처럼, 제어판의 보기 기준을 화면처럼 범주로 바꾸어 줍니다.


그리고, 아래처럼, 시계 및 국가를 클릭하세요. 

그리고 이어서,  그리고, 국가 또는 지역을 선택합니다. 


이어서, 아래 이미지처럼 나타나는 창에서,  관리자 옵션 탭을 선택하세요. 


그리고, 시스템 로캘 변경(C)을 선택하세요. 


마지막으로, 아래처럼, Beta : 세계 언어 지원을... 부분을 체크하고 확인을 누르세요. 


이어서, 재부팅하라는 메시지가 나오면 작업 중인 창들을 모두 저장 후 종료하고 재부팅합니다.

재부팅 후,  다시 VScode를 실행시켜 확인해 보겠습니다. 
코드 작성 영역에는 한글이 잘 나오고 있고, 코드를 실행시켜 터미널 영역의 한글을 확인해 보면 되는데요, 
아래 이미지처럼, UTF-8이 디폴트로 되어 있으면서, 한글 출력도 깨지지 않고 잘 표시됩니다. 


끝으로, 시계 및 국가 ( 》국가 또는 지역 ) 메뉴는 제어판으로 들어오면 바로 찾을 수 있지만,  윈도 시작 메뉴에 있는 톱니 모양의 설정을 클릭하면 찾기가 쉽지 않은데요. 

그런데, 조금 복잡하게 찾아야 하지만, 설정 역시  "Beta : 세계 언어 지원을..." 메뉴를 찾을 수 있습니다.
아래가 전체 경로 입니다. 
Windows 설정 :  시간 및 언어 》 날짜, 시간 및 사용지역 언어 》 추가 날짜, 시간 및 지역설정  》 국가 또는 지역

 


아래 이미지에서 처럼, 날짜, 시간 및 사용지역 언어 를 선택하세요.

그리고 이어지는 창에서, 아래처럼, 추가 날짜, 시간 및 지역 설정 부분을 클릭하세요.

그럼, 역시 제어판 메뉴를 통해 접근했던 국가 또는 지역 선택 메뉴가 나타나는 것을 볼 수 있습니다.

마찬가지로, 지역설정 팝업 메뉴에 있는, Beta : 세계 언어 지원을... 부분을 체크하고 확인을 누른 후 재부팅하면, 
VScode에서의 한글 사용은 깨짐 없이 사용할 수 있게 됩니다. 

 

▶ 동영상으로 VScode에서 한글 코드 깨짐문제 해결하는 법 확인하기!

 

그럼, 오늘 하루도 즐거운 코딩되세요~ ^^&


반응형
반응형

아래 모든 이미지는 클릭하면 크게 확대 됩니다.

 

 파이썬 기초#8딕셔너리(dictionary) 총정리!

1. 《  딕셔너리 란? 》
 : 딕셔너리란? 파이썬에서 리스트와 함께 가장 많이 사용되는 데이터 스트럭쳐 중 하나입니다. 
 딕셔너리는 key  와  value 를 사용하여 데이터를 저장합니다.  그리고 python3.6 이하에서는 스트링, 리스트, 튜플, 등과는 다르게 순서가 없는 데이터 타입(data type)으로 정의했으나,  python3.7 이상에서는 순서가 있도록 업데이트 되었습니다.
 딕셔너리는 컬리브레이스 ( 중괄호 { } )를 사용하여 정의합니다. 
아래, 내용이 비어있는 딕셔너리를 선언하고 클래스 타입을 확인해 볼게요.

2. 《  딕셔너리 사용 형식 》
 : 딕셔너리의 형식은 name = { key1 : value1 ,  key2 : value2 , key3 : value3 ...  }
처럼 key 값과 value값이 1:1로 매칭되는 형식의 데이터들을 갖습니다. 
딕셔너리는 리스트나 튜플처럼 순차적으로 해당 요솟값을 구하지 않고 Key를 이용해 Value를 얻습니다. 이것이 딕셔너리의 큰 특징입니다.

예시 1) 
아래 이미지처럼, Key 와 Value 한 세의 데이터 구조로 입력되며,  Value 값은 Key값을 이용해 호출하거나 처리할 수 있습니다.

 

예시 2) 아래 이미지처럼, 하나의 연관성 있는 데이터의 모음 형태로도 사용할 수 있습니다.
그리고,  name1, name2,  phone1, phone2, ...  와 같은 형식으로 연속적인 데이터를 구성할 수 있습니다.

 

3. 《  딕셔너리 데이터 쌍(Pair) 추가, 삭제하기 》
 :  딕셔너리 쌍을 추가하는 방법과 삭제하는 방법을 알아 볼게요.
 
우선, 아래와 같은 과자(snack)와 가격에 대한 것을 예시로 들어 볼게요.


▶ 요소 추가하기 예시)
아래 이미지에서, 과자 요소 하나를 추가할 때 사용하는 방법입니다.
  딕셔너리 이름['Key']='Value' 

 

▶ 요소 삭제하기 예시)
아래 이미지에서, 과자 요소 하나를 삭제할 때 사용하는 방법입니다.
  del 딕셔너리 이름['Key']

 

▶ 요소 수정하기 예시)
아래 이미지에서, 과자 요소 중,  값(Value)을 수정할 때 사용하는 방법입니다.
  딕셔너리 이름['Key'] = 'Value'

 

4. 《  딕셔너리의 특징(성격) 》
 :  리스트의 경우 내용이 같아도 순서가 다를 경우 서로 다른 리스트로 인식됩니다.  
하지만,  딕셔너리의 경우 키(Key)와 값(Value)인 요소만 같으면 순서가 달라도 같은 딕셔너리로 인식합니다.  즉, 들어 있는 순서는 중요하지 않고 관심도 없기 때문에 딕셔너리에 저장된 내용(Key와 Value)의 수와 종류만 같다면 같은 딕셔너리로 인식합니다.   따라서,  저장 순서가 중요한(필요한) 데이터가 있다면 딕셔너리에 담지 말아야 합니다.

1. 리스트 예시(리스트는 내용과 순서가 같아야 동일한 리스트로 인식)
2. 딕셔너리 예시(딕셔너리는 내용만 같으면 들어있는 순서가 달라도 동일한 딕셔너리로 인식)

 

5. 《  딕셔너리의 in 연산과 not in 연산 》
 :  딕셔너리 내용에 특정 키(Key)가 있는지 확인할 때,  in 연산을 사용합니다. 
딕셔너리로 데이터의 종류별로 묶어 놓을 수 있는데요,  예를 들어, 상품과 가격정보를  과자류와 음료류로 묶어 놓았을 때, 과자류의 상품정보를 수정하려다 음료류의 상품정보를 수정해버리는 실수를 가정할 수 있는데요, 이럴 때, 해당 키값이 요소에 있는지 확인을 먼저하고 진행하는 것이 필요할 수 있습니다. 

 예시 1) 아래는 딕셔너리 이름 지정이 잘못되어, 값 수정을 못하고 요소가 추가된 모습입니다.

딕셔너리 이름 지정이 잘못되어, 값 수정을 못하고 요소가 추가된 모습

예시 2) 따라서 아래와 같이 코딩을 할 때, 해당 딕셔너리에 요소가 있는지 , 확인하기 위해 in 연산자를 사용합니다.
그리고, if 연산자를 활용하여 쉽게 처리할 수 있습니다.

in 연산자와 if문을 활용하면, 잘못된 딕셔너리에 요소 추가 되는 것을 방지할 수 있습니다

 

예시 3) 반대로 아래처럼, not in 연산자를 사용하여, 해당 키값이 있는지 확인하여 없을 경우에 추가해 줄 수도 있습니다.

not in 연산자를 사용하면, 해당 요소의 중복여부를 확인하여 추가할 수 있습니다

 주의해야 할 것은, 딕셔너리에서 in과 not in 연산자에서 확인하는 대상은 키(Key) 이지,  값(Value)이 아니라는 점 기억하세요.

 

6. 《  딕셔너리의 for 루프 》
 :  딕셔너리의 Key를 대상으로 for 루프가 가능합니다. (단, Value 값으로는 대상을 돌릴 수는 없습니다)

예시 1) 음료 데이터 딕셔너리의 키 목록을 for루프로 출력해 볼 수 있습니다.

딕셔너리에서 키값으로 for문을 돌리는 경우 예시입니다.

 

  딕셔너리에서  for문을 사용할 수 있는 것이 중요한 이유는 , 데이터 요소가 아주 많을 경우 수정이 필요할 때 for문을 돌릴 수 있는 것이 중요합니다.  예를 들어 음료 요소로 구성된 딕셔너리에서  가격 변동이 발생하여, 각각의 가격을 올리거나 내려야 할 경우, 한 번에 쉽게 적용시킬 수 있기 때문입니다. 
 예시 2) 아래 예시는 처음, 음료 가격에 20원씩 일률적으로 상승 시킬 경우 예시이며,  이어서 상품가격에 10%의 할인을 적용할 경우 가격 수정에 대한 예시를 들었습니다. 

일률적으로 딕셔너리 Value 값을 20원씩 올리려 하는 경우와 ,  10%의 할인 가격으로 조정하는 경우의 예시 입니다

 

반응형
반응형

 파이썬 에로해결#2윈도에서 파이썬 IDLE가 갑자기 실행되지 않을 때! ( When Python IDLE suddenly does not run on Windows! )

1. 《  문제증상-Problem 》
 : 윈도에 설치한 윈도버전 Python 3.xx 를 설치하고 잘 사용하다보면 갑자기 Windows IDLE 64bit가 실행이 되지 않는 경우가 발생합니다. 
물론 Python 3.x IDLE를 제외한 다른 프로그램은 실행이 잘되지만,  IDLE (Python 3.9 64-bit) 버전만 실행이 되지 않습니다. 

아래처럼, Shell 형태의 Python 3.9는 실행이 잘 됩니다. 

하지만, Python IDLE는 실행을 시켜보면 아무 반응이 없습니다.  관리자 권한으로 실행을 해봐도 무반응입니다. Other programs except Python 3.x IDLE run fine, but only IDLE (Python 3.9 64-bit) version does not run.

이런 증상이 있을 때, 해결하는 방법은 아래와 같습니다. 
Let me show you how to fix it.

2. 《  해결방법-Resolution 》
 : 파이썬 프로그램이 설치되거나, 혹은 업그레이드 버전이 설치되면, 사용자 정의 글꼴 및 크기, 사용자 정의 키 바인딩 및 기타 정보들을 기록하는 폴더가 있습니다.  이 폴더의 내용이 엉키거나 할 경우 파이썬 IDLE가 실행이 되지 않는 것으로 보이는데요,  그래서 해결방법은,  이 폴더 안에 있는 내용(기록 파일)을 모두 지우면 됩니다. 
지우고 Python IDLE를 실행하면, 다시 시로운 정보 파일을 만들면서 실행이 됩니다. 
해당 폴더의 위치는  아래와 같습니다. 

%USERPROFILE%\.idlerc

윈도 탐색창에 위의 경로를 복사하여 탐색창 주소 부분에 붙여 넣기 하면,  USERPROFILE 부분에는 자동으로 자신의 윈도 사용자명으로 바뀌고 파이썬의 해당 폴더로 이동하게 됩니다.   ( ₩는 경로 표시의 역슬래시입니다)
아래처럼, 윈도 탐색창의 주소부분에 위의 경로를 복사 붙여 넣기 하세요.

아래가 문제가 생겼을 때의 위 폴더 위치로 이동해본모습입니다. 
그럼, 기존 설정 파일이 보일 거예요.

 그럼 폴더 속에 있는 파일들을 모두 선택해서 아래처럼 삭제해주세요. 

그리고 다시 Python IDLE를 실행시켜 보면,  아래와 같이 새로운 설정 파일을 하나 생성하면서, IDLE가 다시 실행되는 것을 볼 수 있습니다. 

감사합니다.

【 문제 해결을 영상으로도 확인해 보세요 】

 

반응형
반응형

 파이썬 기초#7】 파이썬 기초 한방에 정리하기!  #3편 , 모듈의 생성과 활용 핵심 요약, 총정리!

(내용은 게시글 마지막 부분부터 계속 추가 예정입니다 , 마지막 편집일: 21.08.08)

아래 1편의 내용을 먼저 참고하세요
▶ 파이썬 한 방에 정리 1편 보기  : https://rasino.tistory.com/333  
▶ 파이썬 한 방에 정리 2편 보기  : https://rasino.tistory.com/334  

1. 《  사용자 정의 모듈 만들기 》
 : 활용 빈도가 높은 내용을 사용자 정의 함수 형태의 파일(.py)로 만들어 다른 파이썬 코드에서도 쓸 수 있게 만든 것을 말합니다.   마치 C언어에서 "xxx.h" 헤더 파일을 활용하는 형태와 유사합니다. 
일반적인 사용자 정의 함수는 하나의 파일 내에서 서브루틴 형태로만 사용되지만, 헤더 파일 활용하듯 별도의 파이썬 파일로 만들어 사용하는 것을 말하며,  이를 파이썬에서는 보통 모듈이라고 합니다.   이런 모듈은 다른 사용자에게 줘서 활용할 수도 있는데, 대표적으로 수학 관련 모듈이나, 데이터 관련 모듈이 이에 해당됩니다. 

그럼, 아주 간단한 예시로,  아래처럼,  인치(inch)를 입력하면 mm(밀리미터) 혹은,  cm(센티미터)로 바꾸어 주는 함수를 만들어 보겠습니다. 

사용자 정의 함수로 인치를 밀리미터로 바꾸어주는 함수 inch2mm( )와 인치를 센티미터로 바꾸어 주는  함수 inch2cm( )를 만들어 정의하였고 , 2인치(inch)라는 수와 3인치라는 수를 각각 넣은 결과를 보여 주고 있습니다. 
 그럼, 인치를 밀리미터로 변환하는 파일(inch2mm.py)을 만들어 main( ) 함수 파일에서 모듈로서 import 하여 사용하고,    마찬가지로,  인치를 센티미터로 변환하는 파일(inch2cm.py)을 만들어 main( ) 함수 파일에서 모듈로서 import 하여 사용해보는 코드를 작성해 볼게요.  main ( ) 코드의 파일 이름은,  "inch2mm_cm.py"로 하겠습니다. 

1. 먼저, 인치를 밀리미터로 변환하는 파일(inch2mm.py) 입니다. 

2. 다음, 인치를 센티미터로 변환하는 파일(inch2cm.py) 입니다. 

3. 그럼, 메인 파일(inch2mm_cm.py) 입니다. 

# Rasino ioT 모듈(함수) 사용하기 실습
# inch2mm_cm.py

# import할 때는 파일의 확장자 .py를 제외하고 적어 주어야 함! 

import inch2mm   # 인치를 mm로 변환하는 모듈(파일.py) 사용 선언
import inch2cm   # 인치를 cm로 변환하는 모듈(파일.py) 사용 선언

def main():
    
    inch_num = float(input ("인치(inch)값 입력:"))
    inch_mm = round(inch2mm.inch2mm(inch_num),2)
    inch_cm = round(inch2cm.inch2cm(inch_num),2)
    print("입력 값",inch_num,"은 ",inch_mm,"mm이며, 또는",inch_cm,"cm입니다")

main()


4.  메인파일(inch2mm_cm.py)에서 실행시켜 결과 확인하기.

보이는 것처럼,  인치값으로 3을 입력했을 때, mm 변환 값과, cm 변환 값이 출력되었고, 
다른 인치값 2를 입력했을 때도, 잘 출력된 것을 볼 수 있습니다.  
처음 3인치를 입력했을 때, 딱 떨어지지 않은 아주 긴 소수점 값으로 나오기에,  소수 2자리까지로 제한하기 위해 round( ) 함수를 사용했습니다.

  주의해야 하는 사항은, 위에서 작성한 3개의 파일 모두 하나의 같은 폴더에 있어야 합니다. 
  import를 선언할 때는 파일의 확장자 .py를 제외하고 적어 주어야 합니다!
 그리고,  모듈(파일)을 가져다(import) 쓸 때는,  적용하고 싶은 함수만 가져다(import) 쓸 수 있습니다. 
 (예시,  from unit_converter import inch2cm  )

그럼,  단위 변환을 주제로,  사용자 정의 모듈을 만들어 활용해보는 예제를 만들어 볼게요. 
실제 단위 변환에 종종 사용될 수 있는 항목으로 18개를 준비하였으니, 활용해 보세요.
1. 단위 변환 18종 파일(unit_converter.py)

# unit_converter.py  (단위 변환기)

#1 인치(in) → 센티미터(cm)
def inch2cm(num):
    return num * 2.54

#2 인치(in) → 밀리미터(mm)
def inch2mm(num):
    return num * 25.4

#3 밀리미터(mm) → 인치(in)
def mm2inch(num):
    return num / 25.4

#4 피트(ft) → 센티미터(cm)
def ft2cm(num):
    return num * 30.48

#5 야드(yd) → 센티미터(cm)
def yd2cm(num):
    return num * 91.44

#6 마일(mile) → 미터(m)
def mile2m(num):
    return num * 1609.34

#7 리(里) → 미터(m)
def li2m(num):
    return num * 392.73

#8 평(平) → 제곱미터(m2)
def p2m2(num):
    return num * 3.31

#9 제곱미터(m2) → 평(平)
def m22p(num):
    return num * 0.3

#10 헥타르(ha) → 제곱미터(m2)
def ha2m2(num):
    return num * 10000

#11 온스(oz) → 그램(g)
def oz2g(num):
    return num * 28.35

#12 파운드(lb) → 그램(g)
def lb2g(num):
    return num * 453.59

#13 근 → 그램(g)
def geun2g(num):
    return num * 600

#14 갤런(gal) → 리터(l)
def gal2l(num):
    return num * 3.79

#15 되(doe) → 리터(L)
def doe2g(num):
    return num * 1.8

#16 말(斗) → 리터(L)
def mal2g(num):
    return num * 18

#17 섭씨(C) → 화씨(F)
def C2F(num):
    return ((num * 1.8)+32)

#18 화씨(F) → 섭씨(C)
def F2C(num):
    return ((num-32)/ 1.8)

unit_converter.py
0.00MB


2. 단위 변환 메인 파일(unit_main.py)

# Rasino ioT 모듈(함수) 사용하기 응용실습(단위 변환기)
# unit_main.py

# import할 때는 파일의 확장자 .py를 제외하고 적어 주어야 함! 
# import 내용 중에 적용하고 싶은 함수만 따로 적용할 수 있음.(from~ import~)
# 예시 from unit_converter import inch2cm

import unit_converter  

def main():
    print("")
    print("######################################################################################")
    print("1.인치(in) → 센티미터(cm) || 2.인치(in)  → 밀리미터(mm) || 3.밀리미터(mm) → 인치(in)")
    print("4.피트(ft) → 센티미터(cm) || 5.야드(yd)  → 센티미터(cm) || 6.마일(mile) → 미터(m)")
    print("7.  리(里) → 미터(m)      || 8.  평(平)  → 제곱미터(m2) || 9. 제곱미터(m2) → 평(平)")
    print("10.헥타르(ha)→제곱미터(m2)|| 11.온스(oz) → 그램(g)      || 12. 파운드(lb) → 그램(g)")
    print("13.   근(斤) → 그램(g)    || 14.갤런(gal)→ 리터(L)      || 15. 되(doe) → 리터(L)")
    print("16.   말(斗) → 리터(L)    || 17. 섭씨(C) → 화씨(F)      || 18. 화씨(F) → 섭씨(C)")
    print("######################################################################################")    
    
    select = int(input("어떤 단위를 변환 할까요?  (exit=0)"))

    if (select == 1) :
        num = float(input ("인치(inch)값 입력:"))
        convert = round(unit_converter.inch2cm(num),2)
        print(num,"inch는",convert,"cm입니다")    
    
    elif (select == 2) :
        num = float(input ("인치(in)값 입력:"))
        convert = round(unit_converter.inch2mm(num),2)    
        print(num,"inch는",convert,"mm입니다")    

    elif (select == 3) :
        num = float(input ("밀리미터(mm)값 입력:"))
        convert = round(unit_converter.mm2inch(num),2)    
        print(num,"mm는",convert,"inch입니다")    

    elif (select == 4) :
        num = float(input ("피트(ft)값 입력:"))
        convert = round(unit_converter.ft2cm(num),2)    
        print(num,"ft는",convert,"cm입니다")    

    elif (select == 5) :
        num = float(input ("야드(yd)값 입력:"))
        convert = round(unit_converter.yd2cm(num),2)    
        print(num,"yd는",convert,"cm입니다")

    elif (select == 6) :
        num = float(input ("마일(mile)값 입력:"))
        convert = round(unit_converter.mile2m(num),2)    
        print(num,"mile은",convert,"m입니다")
        
    elif (select == 7) :
        num = float(input ("리(里)값 입력:"))
        convert = round(unit_converter.li2m(num),2)    
        print(num,"리(里)는",convert,"m입니다")

    elif (select == 8) :
        num = float(input ("평(平)값 입력:"))
        convert = round(unit_converter.p2m2(num),2)    
        print(num,"평(平)은",convert,"m2(제곱미터)입니다")

    elif (select == 9) :
        num = float(input ("제곱미터(m2)값 입력:"))
        convert = round(unit_converter.m22p(num),2)    
        print(num,"제곱미터(m2)는",convert,"평(平)입니다")

    elif (select == 10) :
        num = float(input ("헥타르(m2)값 입력:"))
        convert = round(unit_converter.ha2m2(num),2)    
        print(num,"헥타르(ha)는",convert,"m2(제곱미터)입니다")

    elif (select == 11) :
        num = float(input ("온스(oz)값 입력:"))
        convert = round(unit_converter.oz2g(num),2)    
        print(num,"온스(oz)는",convert,"g(그램)입니다")

    elif (select == 12) :
        num = float(input ("파운드(lb)값 입력:"))
        convert = round(unit_converter.lb2g(num),2)    
        print(num,"파운드(lb)는",convert,"g(그램)입니다")
        
    elif (select == 13) :
        num = float(input ("근(斤)값 입력:"))
        convert = round(unit_converter.geun2g(num),2)    
        print(num,"근(斤)은",convert,"g(그램)입니다")
        
    elif (select == 14) :
        num = float(input ("갤런(gal)값 입력:"))
        convert = round(unit_converter.gal2l(num),2)    
        print(num,"갤런(gal)은",convert,"L(리터)입니다")

    elif (select == 15) :
        num = float(input ("되(升)값 입력:"))
        convert = round(unit_converter.doe2g(num),2)    
        print(num,"되(升)는",convert,"L(리터)입니다")

    elif (select == 16) :
        num = float(input ("말(斗)값 입력:"))
        convert = round(unit_converter.mal2g(num),2)    
        print(num,"말(斗)은",convert,"L(리터)입니다")        

    elif (select == 17) :
        num = float(input ("섭씨(C)값 입력:"))
        convert = round(unit_converter.C2F(num),2)    
        print("섭씨",num,"C는, 화씨",convert,"F입니다")        

    elif (select == 18) :
        num = float(input ("화씨(C)값 입력:"))
        convert = round(unit_converter.F2C(num),2)    
        print("화씨",num,"F는, 섭씨",convert,"C입니다")

    else :
        pass

  
main()

unit_main.py
0.00MB

3.  아래는 위 코드를 실행한 결과입니다. 

※ 모듈을 가져다 쓰는 방법 두 가지

1. 모듈을 가져다 쓸 때 위의 예시처럼, 모듈 파일 전체를 포함(import) 시키는 방법이 있습니다. 
  → import unit_converter      (unit_converter.py 모듈 파일 전체를 포함(가져다) 쓰겠다)
2. 모듈 파일 속에 필요한 함수만 골라서 포함(import)시켜 사용할 수 있습니다. 
  → from unit_converter import inch2cm    (unit_converter.py 모듈 속의 '인치를 cm'로 변환하는 함수만 사용)
  → from unit_converter import ft2cm        (unit_converter 모듈 속의 '피트ft를 cm'로 변환하는 함수만 사용)
  또는 한 줄로 선언할 수도 있습니다.
  → from unit_converter import inch2cm, ft2cm   (unit_converter 모듈 속의 inch2cm와 ft2cm을 가져다 쓰겠다)

   하지만, 이렇게 할 경우, 원래의 함수 이름(inch2cm)과 가져다 쓰려고 선언한 이름(inch2cm)이 같아서 컴파일하면 오류가 생기게 되는데요,  그래서,  가져다 쓰려고 선언하는 이름을 'as' 단어를 붙여서 선언하게 됩니다. (아래)
  → from unit_converter import inch2cm as i2c   (unit_converter.py 모듈 속의 '인치를 cm'로 변환하는 함수를 i2c라는 이름으로 사용하겠다)
  → from unit_converter import ft2cm as f2m   (unit_converter 모듈 속의 '피트ft를 cm'로 변환하는 함수를 f2m라는 이름으로 사용하겠다)
 이렇게 as를 사용하면, 선언할 모듈(함수)의 이름이 길 경우 줄여서 사용할 수 있는 장점도 있습니다. 

unit_converter.py 함수 중에서, 필요한 몇 가지 함수만 as라는 이름으로 바꾸어 사용한 코드

from unit_converter import inch2cm as i2c
from unit_converter import inch2mm as i2m
from unit_converter import mm2inch as m2i
from unit_converter import ft2cm  as f2c

def main():
    print("")
    print("######################################################################################")
    print("1.인치(in) → 센티미터(cm) || 2.인치(in)  → 밀리미터(mm) || 3.밀리미터(mm) → 인치(in)")
    print("4.피트(ft) → 센티미터(cm) || 5.야드(yd)  → 센티미터(cm) || 6.마일(mile) → 미터(m)")
    print("7.  리(里) → 미터(m)      || 8.  평(平)  → 제곱미터(m2) || 9. 제곱미터(m2) → 평(平)")
    print("10.헥타르(ha)→제곱미터(m2)|| 11.온스(oz) → 그램(g)      || 12. 파운드(lb) → 그램(g)")
    print("13.   근(斤) → 그램(g)    || 14.갤런(gal)→ 리터(L)      || 15. 되(doe) → 리터(L)")
    print("16.   말(斗) → 리터(L)    || 17. 섭씨(C) → 화씨(F)      || 18. 화씨(F) → 섭씨(C)")
    print("######################################################################################")    
    
    select = int(input("어떤 단위를 변환 할까요?  (exit=0)"))

    if (select == 1) :
        num = float(input ("인치(inch)값 입력:"))
        convert = round(i2c(num),2)
        print(num,"inch는",convert,"cm입니다")    
    
    elif (select == 2) :
        num = float(input ("인치(in)값 입력:"))
        convert = round(i2m(num),2)    
        print(num,"inch는",convert,"mm입니다")    

    elif (select == 3) :
        num = float(input ("밀리미터(mm)값 입력:"))
        convert = round(m2i(num),2)    
        print(num,"mm는",convert,"inch입니다")    

    elif (select == 4) :
        num = float(input ("피트(ft)값 입력:"))
        convert = round(f2c(num),2)    
        print(num,"ft는",convert,"cm입니다")

unit_converter.py 함수 중에서, 필요한 몇 가지 함수만 as라는 이름으로 바꾸어 사용한 코드입니다.

아래는 위 코드의 실행 결과입니다. 

 

2. 《 빌트인 모듈(built-in module)
 :  빌트인 가전제품처럼,  파이썬에도 빌트인 모듈(함수)라는 것이 있는데, 파이썬을 설치하게 되면 바로 활용할 수 있는 모듈을 말합니다.  
예를 들면,  print, input,  abs,  eval,  chr 등이 있습니다.   따라서 빌트인 함수들은 별다른 정의 없이 기존 정의된 대로 사용할 수 있게 되며,  파이썬 shell 프롬프트에서 아래처럼 print(  형태로 입력 후 나타나는 주석을 참고할 수 있습니다. 

그리고, (아래) 매개변수 값 입력 없이,  print  ,   input  등으로 입력해보면,  해당 함수는 built-in 함수라는 것을 알려줍니다.

이와 같은 기본 빌트인 함수들에는 아래와 같은 것이 있습니다. 

파이썬 내장 함수들 ( Built-in Functions )
abs( ) dict( ) help( ) min( ) setattr( )
all( ) dir( ) hex( ) next( ) slice( )
any( ) divmod( ) id( ) object( ) sorted( )
ascii( ) enumerate( ) input( ) oct( ) staticmethod( )
bin( ) eval( ) int( ) open( ) str( )
bool( ) exec( ) isinstance( ) ord( ) sum( )
bytearray( ) filter( ) issubclass( ) pow( ) super( )
bytes( ) float( ) iter( ) print( ) tuple( )
callable( ) format( ) len( ) property( ) type( )
chr( ) frozenset( ) list( ) range( ) vars( )
classmethod( ) getattr( ) locals( ) repr( ) zip( )
compile( ) globals( ) map( ) reversed( ) __import__( )
complex( ) hasattr( ) max( ) round( )  
delattr( ) hash( ) memoryview( ) set( ) (Rasino ioT)

 

그 외에,  루트 값, 절대 값, 싸인, 코싸인,  파이값 등 수학 관련 함수들을 따로 모아 놓은 math라는 모듈 함수가 있는데요,   40개 이상의 함수가 들어 있으며,  간단히 import math라고 선언만 해주면, 사용할 수 있습니다.  

수학 함수 종류 math.~~~
math.pi π
math.e e
math.sin(x) sin 𝒳
math.cos(x) cos 𝒳
math.tan(x) tan 𝒳
math.asin(x) arcsin 𝒳
math.acos(x) arccos 𝒳
math.atan(x) arctan 𝒳
math.log(x) ln 𝒳
math.log10(x) log10 𝒳 
math.log2(x) log2 𝒳
math.exp(x) e^𝒳
math.sqrt(x) 𝒳
math.fabs(x) |𝒳|
math.degrees(x) radians → degrees
math.radians(x) degrees → radians

 

반응형
반응형

&amp;nbsp;

VS-Code 】  VS code처음 사용 설명서, C/C++ & Python 멀티 코딩 환경 세팅하기! (코드러너, 디버깅 기능 사용)

  VScode는 가벼우면서도, 여러 가지 멀티 언어로 사용목적에 맞게 커스터마이징이 가능한 강력한 코딩 툴입니다.  
하지만, 이런 장점이 이제 코딩을 처음 배우려는 사람들에게는 처음부터 이것저것 알아서 설정해야 한다는 점이 매우 어렵게 느껴집니다. 
  따라서, 아예 PC를 밀고 처음 설치하는 입장에서 설치부터 초기 세팅과 디버깅, 한글 폰트 깨짐 문제 해결하고, 유용한 확장팩 등을 상세히 설명해 드립니다.
아울러,  C/C++와 파이썬 같은 두 가지 이상의 언어를 함께 코딩할 수 있는 설정에 대해서도 다루고 있습니다.
VScode는 이 번 게시글에 나오는 내용만 익히게 되면, 스스로 코딩 학습을 시작할 수 있도록 가장 필요한 내용들로 구성했습니다. 

되도록 상세하게 설명드리려 노력하다 보니,  게시글 내용이 깁니다. 
하지만,  차근 차근 따라 해 보시면, 어렵지 않게 실습 내용을 모두 소화하실 수 있을 것으로 생각됩니다.  ^^&

《 실습 목차 》

※ 본 게시글의 모든 이미지는 클릭 시 크고 선명한 이미지로 볼 수 있습니다.

《 1.  VScode 설치 》

 VS-Code는 하나의 언어에 타깃이 되어 있지 않기 때문에,  설치하고자 하는 언어별로 구성요소를 다운로드하여 셋업 해 주어야 합니다.
 그래서, 각각의 언어에 맞는 툴의 환경을 서로 섞이지 않게 세팅하여 사용할 수 있습니다.

최근, 목적에 따라 여러 가지 언어를 동시에 활용하는 경우가 많아졌는데요, 여기서는 C/C++ 컴파일러와,  Python 인터프리터를 함께 VScode에서 사용할 수 있도록 진행합니다.   혹시 다른 언어가 필요하다면,  우선 설명드리는 언어로 따라 해 보고 필요한 언어에 대해 적용해 보면 충분히 설정할 수 있을 것으로 생각됩니다. 

 먼저,  구글 검색창에서 "VScode"로 검색하세요. 
검색된 VScode 공식 사이트에서, 아래와 같은 VScode 최신버전을 다운로드하세요.  
여기서는 윈도 환경에서 설치하는 것을 보여드리기 때문에 Windows용으로 다운로드하겠습니다.

다운로드한 설치 파일을 클릭하여 설치를 진행합니다

 

 아래, 설치과정에서 ✔ PATH에 추가 부분을 꼭 체크해 주세요.   그리고 다음을 눌러 설치를 마무리해  주세요.

 

설치 완료 후,  VScode가 실행되면,  아래와 같은 한글 언어팩을 설치하라는 안내가 뜨는데,  클릭해서 설치해보면,  VScode의 모든 메뉴가 한글로 변환되어 제공됩니다. 

 메뉴의 모든 영문이 한글로 바뀌었습니다. 

 아래 이미지 처럼,  Extensions 마켓으로 가보면 방금 설치한 한글 언어팩을 확인할 수 있으며, 
제거를 누르면 다시 영문 메뉴로 사용할 수 있습니다.

우선, 제거를 누르고 VScode를 재실행 시킬게요. 
재실행 후에는 다시 영문모드로 열리게 됩니다
개인적으로는 처음 배울 때부터 영문 메뉴로 익히는 걸 추천합니다.  다른 이유도 있지만,  문제 해결을 위해 많이 살펴보게 되는 Stack Overflow(영문) 글을 참고할 때도 도움이 많이 되기 때문입니다.

그럼, 우선 C/C++ 인텔리센스 패키지를 VScode에 설치해 보겠습니다
(※ Intellisense Pakage : 해당 언어의 자동완성 기능 및 디버깅 등을 지원하는 확장 패키지)

필요한 확장 패키지를 검색창에서 검색하여 찾을 수 있습니다.

아래, 노란색 사각형 표시부분을 보세요,  이 부분을 통해 설치하려는 패키지에 대한 설명이나, 사용법 예시를 참고할 수 있습니다.

(아래) VS-Code 웹페이지에서도 주요 확장 패키지를 설치할 수 있습니다.

 

 그럼, 이제  C/C++ 컴파일러로 가장 많이 활용되는 gcc 컴파일러를 윈도에서 사용할 수 있게 해주는 MinGW라는 프로그램을 설치해 보겠습니다. 

 아래 구글에서 MinGW를 검색해서 Source Forge 사이트를 클릭하여 여세요. 

"이미지를 클릭하면 확대 됩니다"

  그럼, Download 버튼을 눌러 프로그램을 받아 설치해 보겠습니다.

MinGW 설치 1
MinGW 설치 2
MinGW 설치 3
MinGW 설치 4

 최종적으로 사각 박스 부분이 아래처럼 4곳이 체크 되어 있어야 합니다.  첫 번째 사각 박스를 체크하면, 제일 아래에 있는 사각 박스(msys-base)는 자동으로 체크됩니다.

MinGW 설치 5

   (아래) 체크 후, Installation의 Apply Changes를 클릭합니다.

MinGW 설치 6
MinGW 설치 7

  Apply를 클릭하면,  설치가 진행되며,  모두 설치되면, 아래처럼,  마무리됩니다.   (Close를 클릭하세요 )

MinGW 설치 8

  설치 완료되었다면, 창들을 모두 닫아도 됩니다.
(※ 만약,  MinGW를 삭제하려면,  다시 여기까지 진행한 다음,  위에 설치한 항목을 클릭하여 제거해야,  깔끔하게 삭제할 수 있습니다.)

 MinGW 설치 후에는,  윈도의 시스템 환경 변수 등록 부분에서 Path 경로를 추가해 주어야 합니다. 

시스템 환경 변수 편집(MinGW Path 경로 추가) 1

 

시스템 환경 변수 편집을 실행시키고    고급    환경변수(N)  시스템 변수 항목의 Path를 클릭! 》  편집 클릭!

시스템 환경 변수 편집(MinGW Path 경로 추가) 2

새로 만들기를 눌러 경로 C:\MinGW\bin를 입력해 주세요.

시스템 환경 변수 편집(MinGW Path 경로 추가) 3

  확인을 누르고 VS-Code를 재실행하거나 Path 경로 적용을 위해 PC를 재부팅하는 것이 좋습니다.

 재부팅 후,  VScode를 다시 실행시켜 주세요. 
그리고, 'CMD 명령프롬프트'를 열어 gcc 컴파일러의 경로 설정이 제대로 되었는지? 확인해 볼게요.

gcc -v   그리고   g++ -v  입력해서 버전 확인이 되는지? 보세요.
( 또는 gcc --version  ,   g++ --version )

만약 버전 체크가 되지 않는다면, MinGW 설치 혹은 환경변수 경로 설정을 다시 확인해 보세요.

 

 3. VScode 설정

그럼, VScode 설치 후 초기 설정 방법에 대해 설명드리고,  아울러, C언어와 Python 두 가지 언어를 섞이지 않게 사용하는 방법으로 설명드립니다.

아래 이미지처럼, 폴더를 만들어 주세요.  
예시)  Language 폴더 아래 C_Lang 폴더와 Python 폴더를 만듭니다

VScode 설정 1

Open Folder를 선택합니다.  (Open Folder는 File메뉴에서도 선택할 수 있습니다. )

VScode 설정 2

Open 폴더를 클릭하여  C_Lang 폴더를 선택합니다.

VScode 설정 3

 

 처음 폴더를 선택하게 되면, 아래처럼, 폴더 신뢰를 묻는 창이 뜨는데,  신뢰에 체크하고,   Yes...를 클릭하세요.

  그럼, C_Lang 폴더 아래에 테스트 파일을 만들어 실행시켜 보겠습니다.
파일명은 hello.c로 할게요.

VScode 설정 4

 

VScode 창 우측 아래에 있는 작업표시줄을 보세요.  테스트 파일을 만들 때, 파일 확장자를 .c로 만드는 순간 C언어 모드로 자동 변경됩니다.

&amp;nbsp; &amp;nbsp; VScode 설정 5

처음, VScode를 설치하고서, 글자를 입력해보니 폰트 크기가 너무 작아 보이네요.
그럼, 기본 폰트 크기를 바꾸어 볼게요. 
File 》 Preference 》 Setting , 클릭합니다.


그리고,  User > Text Editor > Font ,  Font Size 항목에 기본 크기를 정할 수 있습니다.

&amp;nbsp;

원하는 폰트 크리고 수정하고,  저장합니다.

그럼, 아래와 같은 간단한 출력 코드를 작성하고 빌드&실행을 위한 tasks.json 파일을 만들어 볼게요.

#include <stdio.h>

int main()
{
    printf("Hello World!\n");
    printf("Hello RasIno!!!\n");
    return 0;
}


코드 작성 후,  아래 이미지처럼,  메뉴에서 Terminal 》 Compare Default Build Task... , 클릭합니다.


그리고, 화면 가운데 위에 나타난 메뉴를 클릭하세요. ( C/C++의 기본 테스크 빌더로 gcc.exe를 선택합니다.)


그럼, 아래 이미지처럼 기본 내용이 들어간 tasks.json 파일이 만들어집니다.

tasks.json 파일을 간단히 설명드리면, 빌드 명령어를 직접 커맨드 창을 통해 여러 단계로 입력해야 하는 것을 대신해서, 배치 파일처럼, 하나의 파일로 만들어 단축키로 간단히 실행시켜 주는 기능으로 생각할 수 있습니다. 
 그럼, 기본 tasks 내용을 지우고, 아래 링크해 드리는 내용으로 복붙복 하세요.

C/C++ 코딩용 tasks.json 파일

{
    "version": "2.0.0",
    "runner": "terminal",
    "type": "shell",
    "echoCommand": true,
    "presentation": {
        "reveal": "always"
    },
    "tasks": [
        {
            "label": "save and compile for C++",
            "command": "g++",
            "args": [
                "${file}",
                "-g",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "group": "build",
            "problemMatcher": {
                "fileLocation": [
                    "relative",
                    "${workspaceRoot}"
                ],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        },
        {
            "label": "save and compile for C",
            "command": "gcc",
            "args": [
                "${file}",
                "-g",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "group": "build",
            "problemMatcher": {
                "fileLocation": [
                    "relative",
                    "${workspaceRoot}"
                ],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        },
        {
            "label": "execute",
            "command": "cmd",
            "group": "test",
            "args": [
                "/C",
                "${fileDirname}\\${fileBasenameNoExtension}"
            ]
        },
        {
            "type": "cppbuild",
            "label": "C/C++: gcc.exe 활성 파일 빌드",
            "command": "C:\\MinGW\\bin\\gcc.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "디버거에서 생성된 작업입니다."
        }
    ]
}

위,  tasks.json 파일 다운로드 받기 (압축되어 있음).

C_Cpp용 tasks.json파일.zip
0.00MB

tasks.json 파일은 C언어, Python 언어 등 각각 설정해서 사용하게 됩니다. 
현재의 json 파일 내용에는 gcc 및 g++컴파일러에 대한 빌드와 실행에 대한 내용이 있으며, 이를 단축키로 지정해서 사용할 수 있도록 하는 부분을 진행하고 있습니다.

설정 기어 클릭 》 Keyboard Shortcuts , 클릭합니다.
여기에는 기본 설정된 단축키(Short cut)를 확인할 수 있습니다.

이 단축키 값 외에 사용자 정의 단축키를 여기서 직접 편집하거나 추가할 수 있는데,  여기 Shortcuts 버튼을 눌러  json 파일로 추가해 줄 수도 있습니다.

다음으로,  사용자 단축키를 지정해 주기 위해,  아래에 보이는 키 바인딩 값으로 추가해 주세요. 

[
    // 컴파일
    {
        "key": "ctrl+alt+c",
        "command": "workbench.action.tasks.build"
    },
    // 실행
    {
        "key": "ctrl+alt+r",
        "command": "workbench.action.tasks.test"
    }
]

그리고 저장합니다.
(아래 이미지)  Shortcuts 화면으로 넘어가서 'ctrl+alt'를 입력해보면, user 키로 등록된 것을 볼 수 있습니다.

그럼, hello.c 파일로 가서 등록한 단축키가 잘 작동되는지 볼게요.
지금, Ctrl + Alt + C 키를 누르세요!

네, 빌드 단축키가 즉각적으로 반응하는데요,  소스코드에 따라 C 또는 C++ 컴파일러를 선택해 주면 됩니다.


그럼, 터미널 창으로 소스코드가 빌드되는 것을 볼 수 있습니다. (아래)

 

그리고, Ctrl+Alt+R 실행 단축키를 눌러 excute가 나타나면 엔터키 또는 클릭해주면, 
터미널 창으로 결과가 출력되는 것을 볼 수 있습니다


그럼, 이제 C++ 파일도 간단히 작성해서 컴파일&실행 테스트해 볼게요.
새 파일을 클릭하고 파일 이름을 hellocpp.cpp로 합니다.

(아래) 파일 확장자를 .cpp로 만드는 순간 C++ 언어 모드로 자동 변경됩니다.

그럼, 아래처럼,  간단한 코드를 작성해 보세요. 

#include <iostream>
using namespace std;

int main()
{
    cout << "Welcome C++" << endl;
    return 0;
}

 간단한 출력문을 작성했으니, 단축키(Ctrl+Alt+C)로 빌드해볼게요.
C/C++ 작업에서 단축키는 이미 json파일로 숏컷 등록하였으니, 단축키(Ctrl+Alt+C)를 눌러보세요.
그럼, 아래와 같은 선택 메뉴가 나타나고, 이때  "Save and Compile for C++"을 선택하세요.

그럼, 아래처럼, 코드가 빌드되는 것을 볼 수 있습니다. 

 

컴파일이 완료되고, 실행키(Ctrl+Alt+R)를 눌러주면 터미널 창으로 결과를 볼 수 있습니다.(아래)

왼쪽 Explorer영역에 마우스 우클릭 팝업 메뉴에서,  Reveal in File Explorer를 클릭하면 현재의 위치를 바로 탐색 창으로 열 수 있습니다. 

 

다음으로 VS-Code를 처음 설치할 때, 한글 폰트가 깨져 출력되는 문제가 생기는데요.
이 문제를 처리해 볼게요.  

(아래)  그럼, 아래와 처럼,  C언어 코드에 한글 문장 출력문 한 줄을 추가해 보세요.

 컴파일과 실행을 시켜봅니다.  컴파일러는 C를 선택해 주세요.


그리고 실행(Ctrl+Alt+R)을 누르세요. 
그럼, (아래) 이렇게 한글 폰트가 깨져 출력되는데요, 

인코딩 언어가 유니코드(utf-8)로 되어 있는 것을 EUC-KR로 바꾸어야 합니다.

위 이미지의 UTF-8 부분을 클릭하면,  화면 상단에 나타나는 Reopen with Encoding이 나타나는데, 이 것을 클릭합니다.

그럼, 아래와 같은 선택 메뉴가 나타납니다. 

 그러면, 아래로 스크롤해보거나, EUC-KR로 검색해서 Korean [EUC-KR]을 선택하세요.

그런데, EUC-KR이 적용되는 과정에서,  이상하게,  아래 이미지처럼, 출력이 아니라 코드 입력 부분에,  한글 글꼴이 깨져 보이게 됩니다.   

별문제는 아니고, Ctrl+Z키를 눌러주면 제대로 표시됩니다. 

네, 한글이 깨지지 않고 잘 출력됩니다.

 그럼, 다시 컴파일과 실행을 시켜봅시다. 
(아래) 지금, Ctrl + Alt + C 키를 눌러 컴파일(빌드) 하고, 


아래 이미지처럼, Ctrl + Alt + R 키를 눌러 실행시켜 보세요. 

 그럼, (아래) 이렇게 한글 문장이 깨지지 않고 터미널로 잘 출력되는 것을 볼 수 있습니다. 

 

 

  VScode는 디버깅 메뉴는 있지만,  디버거는 설치되어 있지 않기 때문에, 그냥 실행하면 에러가 나고 디버깅이 되지 않습니다.

디버깅 메뉴

따라서, 디버깅을 위해 많이 사용하는 코드 러너를 확장 마켓에서 검색하여 설치해 볼게요. 

검색창에 Code runner 를 입력하여 검색하세요

검색된 코드러너를 선택하고,  Install을 눌러 설치합니다.

 

Code Runner를 설치하면 원클릭 빌드+실행 버튼이 추가가 되어 사용하기 편합니다.
'▷'버튼은 C/C++ 뿐 아니라 Python, Java 등 여러 Prog. 언어에서도 함께 사용할 수 있습니다.

그럼, Run 버튼을 눌러보세요.
[ ※ 'Run Code'는 마우스 우클릭 팝업 메뉴(또는 단축키)에서도 사용 가능합니다 ]

이렇게 OUTPUT 창으로 결과가 출력되는 것을 볼 수 있습니다.
그래서,  버튼 하나로 (빌드+실행)을 한 번에 실행시킬 수 있습니다.
그런데, 한글이 깨져 출력되는데요, 공개된 방법으로 시도해 봤지만 해결이 안 되고, 터미널 창으로 출력을 하면 되니 
여기서는, 넘어가겠습니다.
그것보다 큰 문제는 Code Runner는 결과 출력 default가 OUTPUT으로 되어 있는데,   OUTPUT 창으로는 scanf와 같은 함수로 값 입력을 못한다는 문제가 생깁니다. 
이를 해결하기 위해 기본 출력을 Terminal로 변경해보겠습니다.  더불어 (Terminal 창으로는)
한글도 깨지지 않게 출력할 수 있습니다.

VScode에서는 옵션 설정이 굉장히 많고 복잡하여 변경을 원하는 옵션을 찾기 쉽지 않은데요,  좀 더 쉽게 찾는 방법은,  (아래 이미지) 설치한 툴마다 기어 모양의 설정 버튼이 보이며, 이걸 클릭하면 그 툴에 관련된 설정만 보이기 때문에, 원하는 설정 옵션을 찾기 쉬워집니다  (※ 설치된 툴 목록도 검색하면 나타납니다)

코드 러너의 설정 버튼을 클릭해서 나온 팝업 메뉴에서, Extension Settings를 클릭하면,  아래처럼 코드 러너와 관련된 설정만 보입니다. 

그럼, 아래로 스크롤해서, Run In Terminal을 찾아 체크 ✔ 해주세요.  
체크 후에는, 결과 출력이 Terminal 창으로 바뀌며,  Scanf 등에 대한 입력도 가능해집니다 아울러 한글도 깨지지 않고 출력되죠.(아래)

결과 출력화면(터미널)

 

그럼 이제 디버깅 기능을 적용해 보겠습니다.
코드 러너(Code Runner)를 설치하게 되면, 디버깅 기능을 사용할 수 있는데,  코드러너(Code Runner)를 설치하게 되면, 디버깅 기능을 사용할 수 있는데,  설치 후 바로 사용은 안 되며, 몇 가지 설정을 해주어야 사용할 수 있습니다.
우선, 디버깅을 사용할 만한 변수가 들어간 간단한 코드를 작성해 볼게요. (아래의 코드를 입력해 보세요)

#include <stdio.h>

int main()
{
	int a = 10;
	int b = 20;
	int c;
	c = a + b;
	printf("a + b =%d\n", c);
	for (int i=1; i<10; i++) {
		printf("C = %d\n", c-i);
	}
	return 0;
}


그럼, 화면의 코드를 빌드하고 실행해 보겠습니다.

네, 결과가 잘 출력되었는데요,
그럼, 툴 좌측에 있는 디버그 메뉴로 가서 Run and Debug를 눌러보세요.

이어서 나타나는 목록에서,  C++ (GDB/LLDB)를 선택하고(아래 이미지), 

(아래)  이어서 제일 아래에 MinGW를 설치한 경로가 보이는 gcc.exe를 선택해 주세요.


(아래) 그럼 이렇게 launch.json 파일이 생성됩니다.

 

(아래)  만약 이 파일이 열리지 않는다면, 디버그 메뉴에 있는 create a launch.json file을 클릭하세요.

 

launch.json 파일의 위치는 .vscode 폴더 아래에 생성되어 있습니다. 

 

디버깅은 이미 빌드된 실행파일을 단계별로 멈추어가며, 특정 변수에 저장되는 값의 흐름 등을 분석하여 에러를 찾아내거나, 코드 작성에 도움을 주기 위한 도구인데요, 

(아래)  디버깅을 위해서는 화면처럼 줄 번호 사이 공간, 멈추고 싶은 곳에 Break Point를 찍고,  

(아래)  WATCH 항목에 별도로 확인하고 싶은 변수 같은 것을 추가하여 확인할 수 있습니다. 

디버거의 실행은 녹색 ▷ 실행 버튼을 클릭하거나, 'Run' 메뉴에서(F5) 실행할 수 있습니다.


(아래) 이번에는 c-i 값의 변화를 확인하기 위해 for문 속에도 Break Point 찍어 확인해 볼게요.

디버그 버튼이나 F5단축키를 누를 때마다, 다음 Break Point 위치로 멈추어가며 진행됩니다.

 

추가적으로 Debug 관련하여 사용된 Json의 경로 관련 표시 형식에 대해 설명을 드릴게요.
(아래) 지금 보여드리는 메모장의 내용을 참고해 보세요.

이미지를 클릭해보세요(확대)

기본적으로 ${ ... } 과 같은 형식은 파일 이름이나, 폴더 이름처럼 편집하고 있는 대상이 바뀌더라도 대응되도록 처리하기 위한 형식입니다.

###  디버그 파일속의 경로 관련 옵션 설명  ###

${file} : 현재 열려있는 파일

${fileBasename} : 현재 열려있는 파일의 기본 이름

${fileDirname} : 현재 열려있는 파일의 디렉토리 이름

${fileBasenameNoExtension} : 파일 확장명이 없는 현재 열린 파일의 기본 이름

${workspaceFolder} : vscode에서 연 폴더의 경로

${workspaceFolderBasename} : vscode에서 연 폴더의 경로에 위치한 폴더들의 이름

${relativeFile} : workspaceFolder에서 현재 열린 파일

${cwd} : 현재 작업 디렉토리

${lineNumber} : 현재 선택된 행 번호


[ 경로표시 방법 두 가지  : 경로표시에서 '\\' 또는 '/'로 표시하면 동일하게 처리 됩니다. ]
 "C:\\MinGW\\bin\\gdb.exe"
 "C:/MinGW/bin/gdb.exe" 

[ 역슬래시 ' \ ' 는  한글 글꼴에서는 '₩'로 표시 될수 있으며 동일하게 인식, 처리 됩니다 ]
예시,    "C:₩₩MinGW₩₩bin₩₩gdb.exe"

그래서 필요에 따라 직접 폴더 위치나 파일 이름을 지정하여 디버깅할 수도 있습니다. (하지만, 지정하지 않고 모든 파일에 대응되도록 원래대로 놓고 디버깅하면 편합니다.) 
화면처럼, 디버깅할 실행 파일 이름과 같은 DebugC.exe로 바꾸고 수정한 launch.json을 저장합니다.

그리고 디버깅해보면 동일하게 잘 실행되는 것을 볼 수 있습니다.
디버깅 과정에서 에러가 나는 경우의 대부분은 경로나 파일 이름 등이 일치하지 않아 발생하니, 이런 부분을 잘 살펴보면 해결할 수 있습니다.
만약, 지금 화면처럼 디버깅할 파일(exe실행파일) 이름과 다른 이름으로 잘못 지정하게 되면, 아래와 같은 에러를 표시하게 됩니다.  (※ 디버깅은 만들어진 .exe 실행 파일을 가지고 진행됩니다)

그리고, 경로 표시하는 방법에는 \\(역슬래시) 두 개나 /(슬래시) 하나로 표시하게 됩니다.
또한, 한글 글꼴에 따라 ∖(역슬래시)는 ₩으로 표시될 수 있으며,  동일하게 처리되니 참고하세요.


5. WorkSpace File 활용법

 지금까지 C/C++ 언어에 대한 작업 환경을 저장해 줄 수 있는데, Workspace 파일 형식으로 저장하면 됩니다.
저장 위치는 처음 C/C++ 언어 작업용 폴더를 열었던 C_Lang 폴더에 저장하면 됩니다.
이름을 적당히 적고,  확장자는 .code-workspace 이니 주의하세요.

이런 식으로, 코딩하려는 각각의 언어마다 최종적으로 Workspace 파일을 만들어 저장하고, Workspce 파일 열기로 OPEN 하여 사용하게 됩니다.

이렇게 하면, 여러 종류의 프로그래밍 언어를 편집하고 전환할 때 매우 편리하며, 폴더나 환경설정이 엉키거나 리셋되어 재 설정하는 문제를 줄일 수 있습니다.

 

7. Python(파이썬) 설정

그럼 이제, File 》 New Window을 클릭하여 Python에 대해서도 설정해 보겠습니다.

 새로 연, VScode 윈도에서  Python Extension을 설치해 볼게요.
Extension 마켓에서 설치한 Python intellisense는 파이썬 핵심 모듈인 인터프리터가 아니며,  VScode에서 Python을 사용하기 위한 필요 패키지입니다.
따라서 파이썬 인터프리터는 별도로 설치해 주어야 합니다 ( ※ 인터프리터 : C언어의 컴파일러와 같은 역할)

그럼, Extension 마켓에서 Python을 검색하여 파이썬 패키지를 먼저 설치해 볼게요.

(아래)  이 부분이 Uninstall로 바뀌면 설치 완료된 것입니다.

 

그럼, 간단한 파이썬 코드 하나 작성해 볼게요.
(아래) 이름을 적당히 정하고 확장자를 .py로 해주면, 

(아래) python파일로 자동 인식합니다.

 

(아래) 그리고, Python(인터프리터)을 설치하라는 메시지의 Download를 클릭해 보세요.

클릭하면,  Python 공식 다운로드 페이지로 연결되며, 여기에서 설치 파일을 다운로드하면 됩니다.

만약 Download 버튼이 뜨지 않았다면, 직접 Python.org로 접속하면 됩니다.

(아래)  다운로드한 파일을 클릭해서 설치를 시작하세요.

그리고 반드시, PATH 경로 추가 부분을 체크해 주세요.
그런 다음, 아래 붉은색 박스 영역(Install Now)을 클릭하여 설치를 시작하면 됩니다.

(아래)  설치 완료 시점에, 나타나는 경로 길이 제한 항목을 클릭하여 끄도록 할게요.

네, 방금 최신 버전의 파이썬(인터프리터)도 설치했고,  조금 전 VScode에서 파이썬을 사용하기 위한 확장 패키지(extension)도 설치하였습니다. 

 

7. Python 설정

그럼, C/C++ 설정에서와 마찬가지로 파이썬용 tasks.json 파일을 만들어 빌드 단축키(Ctrl+Alt+C)를 사용할 수 있도록 해볼게요.
우선, 테스트를 위한 간단한 출력문을 입력할게요.
print("Hello World~!!!")

 그리고, 빌드 단축키(Run Build task)  Ctrl+Alt+C를 누르거나 메뉴에서 선택해 주세요.

 

(아래) 그럼 화면 가운데 상단에, tasks.json 파일을 만들 수 있는 메시지가 뜨면 클릭하세요.

 

이어서,  (아래) Create tasks.json file from template를 클릭!

 

마지막으로,  (아래)  제일 아래에 있는 Others를 클릭하면, tasks.json 파일이 생성됩니다. 

 

만약, 이 과정에서 클릭을 잘못했거나, task.json 파일을 다시 만들고 싶다면 ,  방금 생성한 tasks.json 파일을 직접 삭제하면 다시 메뉴를 선택해 추가할 수 있습니다. (아래)

tasks.json파일의 위치는 파이썬 폴더 아래 .vscode 폴더 아래에 있습니다.

그럼, tasks.json 파일의 기본 내용을 파이썬 옵션을 추가한 것으로 바꾸어 볼게요.

먼저,  (아래) tasks.json파일에 있던 디폴트 값을 삭제합니다.


아래 내용으로 복사, 붙여 넣기 하세요. 

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Project Label",
            "type": "shell",
            "command": "python",
            "args": [
                "${file}"
            ],
            "presentation": {
                "reveal": "always",
                "panel": "new"
            },
            "options": {
                "env": {
                    "PYTHONIOENCODING": "UTF-8"
                }
            },
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

파이썬용 tasks.json 파일 내용.zip
0.00MB

변경된 내용을 저장하세요 (Ctrl + S).
(아래) 실행은 Run Build Task  또는 단축키 (Ctrl + Alt + C)로 한 번에 실행시킬 수 있습니다.

 

(아래) 실행시켜 보면 화면처럼 잘 출력되는 것을 볼 수 있습니다.

 

그리고, (아래) 이미 앞서,  Code Runner를 설치하였기 때문에 마우스 우클릭 메뉴의 Run Code로도 실행시킬 수 있으며, 

또는 화면 우측 상단의 실행 버튼 ▷으로도 OUTPUT과 Terminal 창 각각으로 실행 가능합니다.

물론, 당연히 Ctrl + Alt + C  키로도 실행시킬 수 있습니다. 
 ( ※ 파이썬은 인터프리터 언어로 코드 전체를 컴파일하지 않고, 한 줄씩 바로 해석하고 처리되기 때문에,  코드 전체를 먼저 빌드 후, 컴파일하는 C/C++ 언어와 달리,  Ctrl + Alt + C 키만으로 결과가 출력됩니다. )

만약, 출력이 제대로 안 되는 경우에는,  MinGW 설치와 환경변수 경로 설정이 제대로 되어 있는지 살펴보세요. 
그런데,  이런 경로 설정에 문제가 없는 경우에도,  (아래) 이 부분이 CMD(Command Prompt)가 디폴트로 되어 있지 않고, PowerShell이 디폴트로 되어 있어 링크가 연결되지 않아 출력되지 않는 경우가 있으니,   
이 부분을 PowerShell → CMD로 바꾸어 보세요.

만약, 터미널 창으로 한글이 깨져 보이는 문제가 있다면,  
 C언어 설정 때와 같이 여기를 클릭하여 UTF-8을 EUC-KR로 변경해 주면 해결됩니다. (아래) 


그리고, 코드 러너가 설치된 상태에서 OUTPUT창으로 python의 한글 출력이 깨지는 경우는,  코드러너의 세팅 옵션 하나를 바꾸면 해결할 수 있습니다. 
코드러너의 세팅 옵션으로 바로 가려면, Extension 마켓에서 이미 설치한 Code Runner를 검색하고,  코드러너의 기어 모양 설정 버튼을 클릭 후 Extension Settings를 클릭하세요. (아래)

(아래) 그럼, 코드러너 관련된 옵션만 볼 수 있어 옵션 찾기가 편해집니다. 아래쪽으로 스크롤해서 원하는 옵션을 찾을 수도 있지만, 지금은 map을 입력하여 바로 찾아볼게요.  

그럼, 아래와 같은, setting.json 파일이 열리며,


  "python" : 부분의 "python -u",를 "set PYTHONIOENCODING=utf8 && python -u", 로 변경하세요. 

변경 후  settings.json을 저장하세요. 
그럼, 파이썬 코드에 한글 출력문을 넣고 OUTPUT창으로 실행시켜 볼게요.

네, 한글이 깨지지 않고 잘 출력되었네요.
터미널쪽으로도 출력해보면, 잘 출력되는 걸 볼 수 있습니다. 

이렇게 해서 Python 코딩을 위한 기본적인 설정을 해봤습니다. 

마지막으로 이렇게 설정된 상태를 파이썬용 workspace 파일로 저장시켜 놓으면, 언제든 설정된 상태 그대로 불러와서 파이썬 코딩을 할 수 있습니다.


이런 기능은 둘 이상의 언어를 자주 교차하여 편집하거나 작성할 때, 매우 유용한 기능입니다.
만약, 이렇게 하지 않고, C언어를 편집하던 VScode에서 파이썬 파일만 직접 불러와 빌드해보면, 빌드가 되지 않거나, 작업환경이 엉킬 수 있어요. 
C/C++ 언어용 workspace 파일은 C/C++언어 폴더에 저장하고,  파이썬용 workspace 파일은 파이썬 폴더에 저장하면 됩니다.
예를 들어, C/C++ 언어를 코딩하고 싶을 때 Open workspace로  C언어용 workspace 파일을 열면 되고,  파이썬 언어를 코딩하고 싶을 때는 Open workspace로  조금 전 저장한 python.code-workspace 파일을 열면 됩니다.

(아래) 물론 VScode의 New Window를 클릭하여 VScode창을 하나 더 실행시켜 각각 편집할 수도 있습니다.

 

 

8. 유용한 확장팩


 VScode에서 사용하면 편리한 Extension 세 가지를 소개해 드리겠습니다. 

1. Rainbow Brackets

Extension 마켓에서 Rainbow brackets을 검색해 설치해 보세요. 
Rainbow brackets은 코드 속 다중 for문의 괄호에 색을 주어 괄호를 구분하기 쉽게 해 줍니다. 

(아래) 현재는 설치하기 전 화면으로 ,  괄호가 모두 흰색으로 통일되어 있지만,

(아래)  설치 후에는,  이렇게 괄호에 색이 입혀 있어, 한눈에 괄호의 범위 파악이 쉬워졌습니다



2. TabOut

두 번째 유용한 Extension으로 TabOut을 소개합니다. 

  코딩 툴에서는 대부분 시작 괄호나 따옴표를 입력하면 닫히는 괄호(따옴표)까지 자동으로 입력해 주는데요,  비주얼 스튜디오2019 같은 경우, 코드 작성 시 Tab키로 닫히는 괄호를 벗어 날 수 있게 해 주어 편리합니다.
하지만, VScode 같은 경우 이런 기능을 기본 제공하지 않아 불편했는데요, 
TabOut이라는 Extension을 설치하면 이 기능을 지원해 줍니다.  
지금 영상에서 보면, Tab을 누르면 탭 간격만 늘어나고,  괄호를 벗어나지 못합니다. 

그럼, TabOut을 설치하기 위해, Extension마켓에서 TabOut으로 검색합니다.
TabOut을 검색할 때, 공백 없이 검색해야 검색됩니다. 

설치하고, 간단한 코드로 테스트해보세요.

네, 테스트해보니, 따옴표와, 괄호를 마우스 사용 없이, 탭으로 빠져나오게 되어,  코드 입력이 편해서 좋습니다.

 

3. Indent Rainbow

 

마지막 세 번째 Extension은 Indent Rainbow입니다.
(아래) 코드 작성에서 들여 쓰기처럼 탭으로 여러 단계로 되었을 때,  특히 위아래 들여쓰기 코드 길이가 길어지면, 해당 코드가 어떤 라인이지 한 번에 파악하기 쉽지 않은데요,

(아래) Indent Rainbow를 설치하면, 들여쓰기 라인을 색으로 구분시켜 주어 파악하기 쉬워집니다.


네 보이는 것처럼, Tab 영역마다 다른 색으로 구분되어 있어 라인 파악이 쉬워졌습니다.

 

【 전체 과정 핵심 요약 】


① Visual Studio Code 다운로드 후  설치 ( 어떠한 컴파일러도 설치 되지 않으며 툴만 설치 되는 것임 )
     https://code.visualstudio.com/ 

②  gcc/g++ 컴파일러 설치
    C언어 또는 CPP작성을 위해,   가장 많이 사용되는 gcc/g++ 컴파일러를 윈도우에서 사용할 수 있게 해주는 툴인 Mingw-w64를  설치함.
    다운로드 ( https://sourceforge.net/projects/mingw/ )

③ 윈도우의 시스템 환경변수 path 부분에 조금전 설치한 MinGW의 경로를 추가해 줌 (중요!)
     윈도우 시작메뉴 검색창 →  '시스템 환경 변수 편집' 검색 → '고급' 탭 클릭!  →  '환경 변수(N)' 클릭! → '시스템 변수(S)' 항목에 있는 'PATH'  선택 →  '편집(I)' 클릭!  → 설치한 경로 추가 : C\MinGW\bin 
   → 경로(PATH) 추가 후 재부팅~!

④  Visual Studio code 의 확장 프로그램설치  (C /C++ 언어 코딩을 어시스트해줄 확장 프로그램을  VScode에 설치함)
     Extension 마켓에서  " C/C++ for Visual Studio Code " 검색 후 설치 

⑤ 언어별 폴더 만들고 열기
   C/C++ 언어, Python 등 작업하고자 하는 언어별로  작업폴더를 만들고,   VScode의  파일메뉴 - 오픈 폴더(폴더열기)를 한다,   예,  C언어를 작업하고 싶다면,  C-Lang 폴더를 오픈 폴더로 열고, 거기서 hello.c 파일을 만들고 저장한다. 

⑥ 맨 처음,  다음의 세개의 설정 파일 생성해야 함

    1. tasks.json (build instructions)  : 빌드(실행) 관련 지시 사항 설정 파일
        메뉴>Terminal > Configure Default Build Task.  선택  ,   디폴트 내용을 지우고,  링크해드리는 tasks.json 파일 내용을 복붙복 함 ( https://rasino.tistory.com/337  게시글 중간에 있음) 
        그리고 편리하게 사용자 단축키(키보드 숏컷) 등록하여  컴파일&빌드 : Ctrl+Alt+C  ,   실행 : Ctrl+Alt+R 키를 사용하도록 하면 편함.  위 게시글에 해당 내용 있음( keybinding.json )

    2. launch.json (debugger settings) : 디버거 설정 (디버거는 VScode에 메뉴만 있을 뿐 마켓플레이스에서 디버거를 검색, 선택해서 설치해야 작동함)
       많이 사용되는 디버거로는 코드러너 (Code Runner)가 있으며, 마켓플레이스에서 검색 후 설치함.
       설치 후, Run and Debug (F5) 를 눌러,  화면 상단 가운데 나타나는 메뉴   C++ (GDB/LLDB)  와  C++(Windows)  중에서,   반드시  C++ (GDB/LLDB)를 선택할 것!!!
       곧이어,   gcc.exe - 활성 파일 빌드 및 디버그 (컴파일러: C:\MinGW\bin\gcc.exe )  를 선택할 것!

    3. c_cpp_properties.json (compiler path and IntelliSense settings) : 컴파일러 경로 설정 파일
        메뉴 > 보기 > 명령팔레트,   또는  F1키 누름   >>   C/C++  Edit Configulations (JSON)  선택함!   

  ⑦  파일 메뉴 > Save Workspace as ...   워크스페이스 저장하기를  눌러 C언어 코딩을 위한 작업 환경을 저장하고,   다음에 C언어를 작업하고자 할 때,  여기서 저장한 워크스페이스 파일을 열면 됨.

  <<<   여기까지가 기본적으로 생성 해야할 파일은 생성된 것이며,   C언어를 예시로 작업된 것이고,   파이썬 언어에 대해 추가로  마켓플레이스에서 파이썬 모듈을 검색하고 설치,   파이썬 인터프리터를  python.org 사이트에서 다운로드 받아 설치,    그리고  파이썬 워크스페이스 파일로 저장함.   (파이썬용 tasks.json 파일 역시 게시물 참조하여 생성 :  https://rasino.tistory.com/337 ) 

    ⑧  기타,  한글 깨짐,  디버깅 사용법, 터미널 창으로 결과 출력 바꾸기,  vscode 익스텐션 툴 (유용한 확장 툴) 설치 등은 영상을 참고하세요. 

 

【 전체 과정 동영상으로 보며 실습하기 】


 그럼, 이상으로 VScode 처음 설치부터 기본 사용법과 디버깅 기능을 알아보았고,  Workspace를 사용하여 C/C++ 언어와 Python과 같은 두 가지 이상의 멀티 언어 설정법에 대해 다루었습니다.
마지막으로 사용하면 편리한 확장 Extension까지 살펴보았습니다.
현 게시글을 정말 상세히 작성했지만,  전 과정을 직접 제작하여 올린 유튜브 영상을 함께 보신다면, 쉽게 실습을 진행할 수 있을 것으로 생각됩니다. 

긴 글 ,  긴 시간의 실습 고생하셨습니다. 
감사합니다. 

 

 

[ 기타 ]
 《 에러 증상과 해결 》

(에러 증상 1. ) 설치 과정 중에, cmd에 gcc -v 했는데 버전 체크가 안 되는 경우!  ,    또는   'C:\Users\xxxxxx\HelloWorld'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
 배치 파일이 아닙니다.

(해결 1→) 이 경우는, 윈도 환경변수 등록 부분의 경로 설정에 오타나 등록 에러, 또는 경로가 정확히 맞지 않아 발생하게 됩니다. 예를 들어, 콤머(,)를 점(.)으로, 또는 세미콜론(;)을 콜론(:)으로 하나만 잘못 입력되어도 경로를 인식 못합니다. 경로 설정(등록) 부분을 한 번 더 확인해보시고, 그리고 재부팅해야 추가된(변경한) 경로가 적용되니, 재부팅도 해보세요~,  또한, OneDrive 사용 중인데 현재  OneDrive가 오프라인 상태가 아닌지?  확인해보세요.  간혹 원드라이브 아래 경로에 파일이 있을 경우 오프라인일 때 인식이 안 됩니다. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

(에러 증상 2. ) 설치와 설정을 거의 대 끝내고, 간단한 코드로 실행을 시켰을 때, 터미널 창으로 아래와 같은 에러가 나는 경우입니다. """ cmd : 'cmd' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오. 위치 줄:1 문자:1 + cmd /C C:\Users\.... """ 와 같은 형태로 에러가 나는 경우,

(해결 2→) 우선 영상에서처럼 환경변수 등록을 제대로 되었는지? 확인해서 cmd ver 버전 확인이 제대로 되었다면, 그래서 경로 문제는 아닌 경우.... VS-code를 윈도에 처음 설치하게 되면, window의 경우 terminal이 기본으로 powershell로 설정되어 있을 거예요. VS-Code 화면 하단의 TERMINAL 창에 보면 , 오른쪽에 [ 1:powershell ] 로 선택되어 있을 텐데, 그걸 cmd로 변경하고 다시 해보세요. ( powershell 부분에서 Select Default Shell 선택 후, Command Prompt를 입력 및 선택하시면 되실 거예요 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

(에러 증상 3. ) """ 액세스가 거부되었습니다. 터미널 프로세스 "C:\Windows\System32\cmd.exe /d /c cmd /C C:\vscode_c\database"이(가) 종료되었습니다(종료 코드: 1). """ 이러한 오류코드가 뜨면서 실행이 종료되었을 경우!

(해결 3→) 현재의 증상은, 액세스 관련 문제는 대부분 윈도 보안 정책과 관련되어 있을 거에요. 처음 실행했을 때 파일 생성은 되었지만, 수정후 다시 실행 파일을 만들면서 덮어쓰려하니 액세스 거부하는 걸로 보여지는 증상인것 같아요. ※ VS-Code 터미널의 권한을 관리자 권한으로 실행되도록 아래 내용 처럼, 해보세요. 1. 바로 가기 또는 앱 / exe를 마우스 오른쪽 버튼으로 클릭 2. 속성으로 이동 3. 호환성 탭 4. "관리자 권한으로이 프로그램 실행"을 선택하세요. 그럼, VS-Code를 모두 닫고 다시 실행해서 확인해보세요. 만약, 그래도 같은 증상이 있다면, C코드 작성파일이 저장되는 위치(폴더)를 윈도우(보통 C:) 드라이브가 아닌 다른 드라이브(D:)나 혹은 윈도우 문서 폴더 등과 같은 권한 영향이 미치는 곳을 피해서 저장 및 작성해보세요. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

(에러 증상 4-① ) printf(); 에 한글 치면 인식 못하고 이상한 문자로 바뀌어서 출력되는데 어떻게 하면 해결할 수 있나요?

(해결 4-①→) VS-Code 한글 깨지는 현상 해결 하기 : Vs-code는 기본 설정 언어가 한글 인식이 안 되는 utf-8 코드로 되어 있어요. 이를 한글이 깨지지 않는 EUC-KR로 바꾸어 주시면 되는데요, 제일 빠른 방법은, vs-code 툴 제일 아래 파란 표시줄 보시면, 우측에 ' utf-8 '이라고 표시되어 있는 부분이 있을 텐데요, 그 부분을 클릭하면, 화면 상단 중앙에 메뉴가 뜹니다. 그럼, ReOpen Encoding... 옵션을 클릭해서 나타나는 메뉴 중 , ' Korean(EUC-KR) '을 클릭하면 됩니다. 그럼, 파란색 표시줄에 EUC-KR로 바뀌게 되는데요, 그런데, 기존 작성된 printf("ㅌㅌㅌㅌㅌ"); 코딩 부분의 한글은 아직 깨져 있는 상태 그대로 있을 텐데요, 저장 후 다시 로딩하면 한글이 제대로 뜹니다. 또는 Un-do 명령어인 이전으로 돌리기( Ctrl+Z ) 키 동시에 누른 후, 다시 앞으로 되돌리기 ( Ctrl+Y) 키 눌러보면, 깨지지 않은 채로 리로딩되어 있을 거예요. 한글 설정으로 바꾸는 다른 방법은, Vs-Code 툴의 좌측 아래에 보면 톱니바퀴 모양의 , 혹은 메뉴 중에 Settings(설정) 메뉴를 클릭 》 검색창에 "encoding" 입력 후, Files : Encoding 항목의 옵션을 ' Korean(EUC-KR) ' 로 바꾸면 되세요~

--------------------------------------------------------------------------------------------------------------------------------

(에러 증상 4-② )  아래처럼, 디버그 이용 시, Debug(디버그) 콘솔의 출력에서 한글이 깨져 나오는 경우, 

 

(해결 4-②→) Setting 화면에서 "encoding"으로 검색하여 나오는 항목에서 시스템 기본 인코딩을 UTF-8로 변경하고, Auto Guess Encoding에 체크 표시를 해제하면 해결 됩니다. 

설정 변경 적용된 결과(아래)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

(에러 증상 5. ) 영상에서 설정한 빌드 단축키나 실행 단축키 관련해서 제대로 실행이 되지 않는 경우 : 혹은, ctrl+alt+c 를 했을 때 하나의 gcc.exe 활성 빌드밖에 없고 ctrl+alt+r은 실행이 되지 않는 경우 등 :

(해결 5→) VS-code 세팅 과정에서 특정 부분 셋업을 진행하다 보면, tasks.json 파일이나, 다른 설정 파일의 내용이 분명히 영상 따라 바꾸어 놓았지만, 다시 이상하게 일부분이 변경되는 경우가 생길 수 있습니다. 따라서, 작업 폴더에 생성해 놓았던 tasks.json 파일을 열어서 현재의 내용은 다시 모두 지우고, 본 영상의 더보기에 링크해드린 tasks.json 파일의 내용을 다시 붙여 넣기(저장) 해보세요. 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

(에러 증상 6. ) 만약, 모두 설치를 제대로 진행하고서, C언어로 연습 코딩을 하였을 때, 아래와 같은 에러 증상이 나는 경우입니다. @/include 오류가 검색되었습니다. includePath를 업데이트하세요. 이 변환 단위(D:\(폴더명)\VSC\HelloWorld.c)에는 물결선을 사용할 수 없습니다. 파일 소스을(를) 열 수 없습니다. "stdio.h" , 처럼 C언어 코드 자체가 인식이 안 된다고 느끼신 다면,

(해결 6→) 현재 VS-Code에 영상을 따라, C/C++ 언어와 같은 추가 패키지를 제대로 설치했을 경우로 가정하고 말씀드릴게요. VS-code 화면 하단에 보시면, 파란색 작업 표시줄 같은 것이 보일 거예요.(영어로, Status Bar라고 되어 있고요,
혹시 x를 눌러 닫아 버렸다면, VS_Code 상단의 View 메뉴로 가서 》 Appearance 》 'Show Status Bar'를 체크하면 됩니다.) 그래서, 하단 메뉴 표시 바에 보시면, C언어가 아닌, HTML이나, 다른 언어 같은 걸로 설정되어 있을 거예요. 거기 부분이 'C'로 표시되어 있어야, C언어 코드로 작동 됩니다. 만약 C 가 보이지 않는 다면, 다른 언어로 표시된 부분을 클릭 하시면, 화면 상단 중앙에 언어 선택하는 풀다운 메뉴가 뜰거에요. 그럼 거기서 C나 혹은 C++ 을 원한다면, 선택하시면, C언어 모드로 바뀌고 C언어로 코드해석이 잘 될 거에요. 그리고 만약, C 하다가 파이썬이나 다른 언어로 하단 메뉴를 눌러 바꾸면서 왔다 갔다 작업을 해야 한다면,그리고 만약,  C하다가 파이썬 이나 다른 언어로 하단 메뉴를 눌러 바꾸면서 왔다 갔다 작업을 해야 한다면,   제가 단 고정댓글이나,  본 영상 더보기 클릭하시면,  
[ 멀티 언어 사용방법 또는 Work Space 저장하는 방법 ] 등으로 해서 안내해 놓은 것이 있으니 참고해 보세요~

(에러 증상 7. )  jsons 파일 변경해서 잘 먹던 단축키 (예를 들어,  빌드 :  ctrl+ alt + C  ,  실행 : ctrl+ alt + R ) 가   어떤 설정 작업한 이후에 다시 실행이 안 되는 경우! 

(해결 7→)  jsons 파일은 워크스페이스를 새로 지정하거나,  마켓 프로그램을 추가 설치하거나 등의 작업에서  그 내용이 디폴트로 리셋 되는 경우가 종종 있습니다.  
이럴 땐,   영상을 통해 이미 알려드린  jsons 파일의 내용을 다시 한번 복사 붙여 넣기 해서 저장하시면 잘 실행 될 거예요.


(에러 증상 8. ) 실행할 때 printf문 같은 것은 실행이되지만 scanf나 다른 변수를 같이쓰면 내부 또는 외부명령, 실행할 수 있는 프로그램, 또는 배치파일이 아니라는 에러 메시지를 띄우는 경우가 있습니다.  

(해결 8→) 이런 경우 별도로 설치된 Macafee safe와 같은 안티바이러스 혹은 방화벽 프로그램 같은 것 때문에, 제대로 동작이 안 될 수 있으니,  관련기능을 해제하거나, 옵션 변경 또는 프로그램을 언인스톨(삭제)해 보세요.

(에러 증상 9.)  설치 후,  C언어와  C++ 언어의 빌드 선택할 수 있는 메뉴가 나타나지 않아  gcc.exe   또는  g++.exe를 선택적으로 실행하지 못하여  빌드 및 실행 에러날 때!
(해결 9→)  F1 키를 누르면,   상단 가운데  입력창이 나타날 때,  C/C++ Edit  Configurations (JSON) 파일을 선택하여 생성 할 것!   그리고 바로  나타나는  C++ (GDB/LLDB)  와  C++(Windows)  중에서,   반드시  C++ (GDB/LLDB)를 선택할 것!!!    만약, JSON파일이 이미 생성되어 있을 경우에는 바로 선택메뉴가 나타나고 C++ (GDB/LLDB)를 선택하면 됨.

(에러 증상 10.)  파이썬에서  한글 출력할 때 인코딩관련 Syntax 에러날 때,   (  예시,  SyntaxError: Non-UTF-8 code starting with '\xc7' in file ...   )
(해결 10→)  VScode에서  EUC-KR 로 설정 되어 있고 한글을 출력하려 할 때 위와 같은 에러가 날 경우는  코드 맨 위쪽에 다음과 같은 주석을 달아주면 해결됩니다.  
   # -*- coding: euc-kr -*-
   또는,  한글이 없음에도 에러가 날 때는,   # -*- coding: utf-8 -*-   를 추가해 주고,    필요에 따라  일본어나 중국어 등 다른 언어를 사용할 때 에러가 날 경우,  해당 언어의 인코딩 주석을 추가해 주면 해결 됩니다. 

(에러 증상 11) cmd : 'cmd' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오.

(해결 11→) 먼저, 아래 두 가지 부분을 살펴보세요.
1. 시스템 환경변수의 경로(Path) 등록 부분이 제대로 되었는지? 다시 한번 확인해 보세요.

2. vscode를 처음 설치하게 되면, 기본 터미널이 cmd가 아니라 Powershell로 되어 있는데, 그부분을 cmd로 바꾸어 주세요.
VS-Code 화면 하단의 TERMINAL 창에 보면 , 오른쪽에 [ 1:powershell ] 로 선택되어 있을텐데, 그걸 cmd로 변경하고 다시 해보세요.
( powershell 부분에서 Select Default Shell 선택 후, Command Prompt를 입력 및 선택하시면 되실거에요 )

 
(에러 증상 12) include (경로) 에러가 나거나,  compiler 경로 에러가 날 때 :
(해결 12→)
MinGW가 설치된 폴더의 gcc 컴파일러(include)의 경로(path)에 문제가 있어 찾지를 못하는 것인데요,
#include <........h>  에 물결 밑줄이 그어 있을 텐데요,  거기 오른쪽 마우스 클릭 하면,  팝업창이 열리는데, 영문 기준으로  Edit"includePath" Setting 항목이 보일거예요.  그걸 클릭하거나,
또는,   vscode가 설치된 폴더 아래에 보면,  " .vscode"   폴더가 있을 텐데,   거기 아래에 보면, c_cpp_properties.json 파일이 있을 거예요.   윈도 탐색기 열 필요 없이,  그냥 VScode 좌측 탐색 화면창에서 보고 바로 열면 됩니다.

그 파일의 내용은 아래와 같이 나올 텐데요,    아래 내용에 보면,  includePath: 항목이 비어 있거나 잘못 된 경로로 되어 있을 거 같은데요,  
그 부분의 경로를 아래처럼 "${workspaceFolder}/**"   해주거나,    실제 탐색창에서 include의 경로를 확인한 다음 그 경로로 써주세요.   MinGW 버전에 따라 버전이 다를 수 있는데, 
제 경우는 C:\MinGW\lib\gcc\mingw32\6.3.0   폴더 경로 아래에 gcc의 include 경로가 있기에   "C:\MinGW\lib\gcc\mingw32\6.3.0" 경로를 직접 적어주는 식으로 하면 될거예요.
가끔 설치 경로를 자동으로 매칭 시키는  "${workspaceFolder}/**"  형태가 잘 안 먹을 수 있으니 ,  그럴 때는 직접 경로를 써보세요. 
그리고,   "compilerPath" 부분에도 경로가 비어 있으면 채워주어야 합니다. 
참고로,  vscode에서는  경로 표시 할 때,   아래 처럼, 역슬래시는 두 개를 입력해야 합니다.   슬래시는 하나만 입력 하는 거구요. 
예시,   vscode에서는
 "C:\\MinGW\\lib\\gcc\\mingw32\\6.3.0"   이렇게 하거나,    "C:/MinGW/lib/gcc/mingw32/6.3.0"  이렇게 입력해야 제대로 인식합니다.

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "C:\\MinGW\\bin\\gcc.exe",
            "cStandard": "gnu11",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4

 

(에러 증상 13)  컴파일러 선택 메뉴가 사라졌을 때, (gcc.exe  또는  g++.exe 선택할 수 있는 메뉴가 보이지 않을 때) 

(해결 13→)
보통 g++ 빌드 했을 때 문제없을 경우 아래 처럼 나오는데요,  
> Executing task: C/C++: g++.exe 활성 파일 빌드 <
빌드를 시작하는 중...
C:\MinGW\bin\g++.exe -g F:\Language\C_Lang\hakbun1.cpp -o F:\Language\C_Lang\hakbun1.exe
빌드가 완료되었습니다.
Terminal will be reused by tasks, press any key to close it.
> Executing task in folder C_Lang: cmd /C f:\Language\C_Lang\hakbun1 <
학번:923202 , 이름:이순신, 점수:99
Terminal will be reused by tasks, press any key to close it.

음...  ctrl+alt+C  빌드 단축키 같은 거 누를 때  선택 메뉴가 나오나요?   
그 메뉴가 나오면,  .C 파일은 gcc로 컴파일 하면 되고,   .CPP 파일은   g++ 컴파일러로 컴파일 하면 별 문제 없거든요.  
보통,  처음에 선택 메뉴가 나오다가 어떤 설정이 건들려 지게 되면  선택 메뉴가 보이지 않고 gcc.exe 같은 컴파일러 하나로 컴파일 되는 경우가 있습니다. 
그럴 때는, 컴파일러 선택메뉴가 나타나게 해줘야 하는데요,   tasks.json  파일을 열어보면,          
             "group": {
                 "kind": "build",
                 "isDefault": true
             },
빌드 항목이 보일 거예요. 
거기를 통째로  아래처럼 주석처리 하시고, 
            // "group": {
            //     "kind": "build",
            //     "isDefault": true
            // },
아래처럼 한 줄 새로 넣어 주세요.  
"group": "build",

저장 후,  vscode를 닫고 재실행 한 다음 해보세요.

 

[ 기타 자주 물어보는 질문 ]

질문 1)  컴파일을 c로 할지 c++할지 선택하는 과정을 없엘수는 없나요~

질문 2) 실행 버튼을 누르면 execute가 나온다음에 엔터를 쳐야 실행되는데 이것 또한 안나오게 할수는 없을까요?
답변 ① tasks.json 파일을 열어보면(VScode에서 바로 열어도 됩니다) 각 언어마다(C 와 C++) 아래와 같은 항목이 있을 거예요.
"group": "build",
그럼,  C나 C++ 둘 중에 주로 사용하는 언어의 이 부분을 주석 처리해 놓고, 아래와 같이 추가해 넣어 보세요.
 
"group": {
"kind": "build",
"isDefault": true
},
저장하고 vscode를 재 실행하면 이후로는 추가해 넣은 언어가 ctrl+alt+c 누를 때 선택창이 뜨지 않고 바로 빌드 될 거예요.
 
그럼, C언어든, C++이든 고정적으로 사용하는 언어로 지정해서 컴파일 하면 될거예요. 만약, 둘 다 섞어 쓰게 되는 경우라면, 보통 C언어 컴파일러인 gcc.exe는 C를 완벽하게 컴파일 하지만, C++은 컴파일을 모두 커버하지 못하는 부분이 있고,
반대로, C++ 컴파일러인 g++.exe는 C++과 C까지 모두 컴파일 하는 데는 크게 무리 없기 때문에, g++.exe 컴파일러를 지정해서 사용하면 될거예요.
-----------------------------------------------------------------------------------------------------------------------------
답변 ② 익스큐트 없이 바로 실행되게 하기 위해서는, 마찬가지로, 같은 tasks.json 파일을 열어서,
ctrl + F 찾기를 눌러 test 를 찾은 다음 아래와 같이 , 원래 있던 "group": "test" 부분은 주석 처리 해버리고, 아래 4줄을 추가해 주세요. 그리고 저장 후, 재실행 후 해보시면, ctrl + alt + r 키를 누르면 execute 가 뜨지 않고 바로 실행 될 거예요.
 
// "group": "test",
"group": {
"kind": "test",
"isDefault": true
},

< 위 질문과 반대의 질문에 대한 답변 : >

① 질문 :  ctrl+alt+c를 눌렀을때 c나 c++선택창이 뜨지 않고 그냥 컴파일이 되는데 뭐가 문제일까요?

② 답변 : 
안녕하세요~
중간에 어떤 다른 작업으로 인해 tasks.json의 내용 또는 일부가 변경되거나 지워지는 경우가 있습니다. 그럴때는 제공해드리는 tasks.json의 내용을 다시 복사 붙여넣기 하시면 대부분 해결 되실거에요.

그리고, 그렇게 해도 처음 몇 번은 목록이 뜨다 다시 안 뜨는 경우가 생길 수 있는데요,
① tasks.json 파일을 열어보면(VScode에서 바로 열어도 됩니다) 각 언어마다(C 와 C++) 아래와 같은 항목이 있을 거예요. "group": { "kind": "build", "isDefault": true },
이 부분은 해당 컴파일러를 디폴트로 설정해 버려 , 목록 없이 바로 컴파일 되도록 해버립니다.
그래서, 우선 이 부분 4줄을 주석 처리 해 놓고, 아래의 한 줄을 새로 입력해 보세요.
"group": "build", (C 영역 또는 C++ 영역 둘 다 이렇게 되어 있으면 됩니다)
그리고, 저장하고 vscode를 재 실행하면 이후로는 ctrl+alt+c 누를 때 선택창이 뜰거에요.
그런데, 이후로는 목록이 두 개가 아니라 4~5개 이상 뜨게 되는데요, 이유는 vs-code 또는 윈도에서 기본 제공하는 clang 이라는 컴파일러가 감지 되면서 목록에 함께 뜨는 것으로 보이는데요. 어째튼 그 것들 중에서 원하는 것으로 선택해서 컴파일 하면 됩니다.
음... 일단 앞으로 계속 사용해 보시면, 오히려 목록이 뜨는 게 별 의미 없고 번거로우실 거에요. 그럴 때는 위에서 조치한 것을 다시 반대로 돌려놓으면 됩니다.
만약 그렇게 하겠다면, C언어든, C++이든 고정적으로 사용하는 언어로 지정해서 컴파일 하면 될거예요. 만약, 둘 다 섞어 쓰게 되는 경우라면, 보통 C언어 컴파일러인 gcc.exe는 C를 완벽하게 컴파일 하지만, gcc.exe로는 C++의 컴파일을 모두 커버하지 못하는 부분이 있고, 반대로, C++ 컴파일러인 g++.exe는 C++과 C까지 모두 컴파일 하는 데는 크게 무리 없기 때문에, 보통은 g++.exe 컴파일러를 디폴트로 지정해서 사용하면 될거예요.
-----------------------------------------------------------------------------------------------------------------------------
그리고 추가로 실행 단축키도(ctrl + alt + r ) execute 글자를 별도로 선택하지 않고 지정한 컴파일러로 바로 실행 시킬 수 있는데요, 바로 실행되게 하기 위해서는, 마찬가지로, 같은 tasks.json 파일을 열어서, ctrl + F 찾기를 눌러 test 를 찾은 다음 아래와 같이 , 원래 있던 "group": "test" 부분은 주석 처리 해버리고, 아래 4줄을 추가해 주세요. 그리고 저장 후, 재실행 후 해보시면, ctrl + alt + r 키를 누르면 execute 가 뜨지 않고 바로 실행 될 거예요.
// "group": "test",
   "group": {
   "kind": "test",
   "isDefault": true
   },

 

 

※ 추가적으로 좀더 상세히 설치하고 설정하는 영상(아래 링크)을 다시 만든 게 있는데, 이부분을 참고해보세요. powershell → cmd 로 변경하는 부분도 설명되어 있어요.

 

반응형
반응형

 파이썬 기초#6】 파이썬 기초 한방에 정리하기!  #2편 , 조건문-함수편-기타 핵심 요약, 총정리!

(내용은 게시글 마지막 부분부터 계속 추가 예정입니다 , 마지막 편집일: 21.08.08)

아래 1편의 내용을 먼저 참고하세요
▶ 파이썬 한 방에 정리 1편 보기  : https://rasino.tistory.com/333  
▶ 파이썬 한 방에 정리 3편 보기  : https://rasino.tistory.com/338  

 

1. 《  if  문  》
 : 조건이 맞으면 실행을 하라~!
 "if 조건 : " 문은  if 뒤에 조건이 맞으면(true)  if 문에 속해 있는 문장들을 실행하게 됩니다. 

 파이썬에서는 C언어에서 처럼, if문에서 { 중괄호 } 같은 것을 사용하지 않고, 인터프리터 언어의 특성인 한 줄씩 처리되도록 하기 위해 ' : ' 콜론을 사용합니다. 
 그렇기 때문에, if문에 속해 있는 문장들은 모두 들여 쓰기(탭키, 혹은 보통 4칸)를 하여 구분합니다. 
 또한,  파이썬은 유연성이 좋아 위 예시처럼 한 줄에 출력까지 기술해 줄 수 있습니다. 


2. 《  if  ~ else 문  》
 : 조건이 참(True)이면 실행할 코드와, 조건이 거짓(False)이면 실행할 코드를 구분하여 작성할 때, 사용하게 됩니다. 

 if <조건> : 
       (조건이 True 참이면 실행할 문장들 ...  )
 else :
       (조건이 False 거짓이면 실행할 문장들 ...  )

- def '함수명( )' 은 사용자 정의 함수입니다.   
- num = int (input(" 입력....: "))   >>  화면에 숫자를 입력받을 때, 글자를 출력하고, 입력받은 숫자(문자)를 정수형으로 처리하여 num이라는 변수에 대입하는 형태를 많이 사용합니다.

 

3. 《  if  ~  elif  ~  else 문  》
 : 조건이 여러개인 상황에서 하나를 선택하도록 할 때 사용하게 되는 코드 유형입니다.

 if <조건 1> : 
       (조건 1이 True 참이면 실행할 문장들...  )
 elif <조건 2> : 
       (조건 2가 True 참이면 실행할 문장들...  )

 elif ...

 else :
       (위의 모든 조건이 False 거짓이면 실행할 문장들...  )

< 아래 예제 코드를 참고하세요 >

 

※  if 문의 기본 구조는 ,    if  《 조건 》입니다.   그래서  조건이 참(True)이면,  if :  문에 속해 있는 내용들이 실행되며, 조건이 거짓(False) 이면, 실행되지 않습니다. 
 그럼 여기서, 조건의 기준인 True와 False 가 되는 기준이 있다는 것을 알 수 있습니다. 
Bool 값인  'False'와 숫자 '0'  그리고 '  ' 공백은 False로 처리되며,   이것 이외의 모든 것 들은 True로 처리됩니다. 
 예를 들어,  논리 값 'True' , 숫자 '1' 뿐 아니라,  '2', '3', ...  ,  영문자 'A' , 'a',  'b',  등등 모두 True로 처리되어,  if 문에 속한 코드들이 실행됩니다. 

 

3. 《  if  문과 논리 연산자  》
 :  if 문에서 하나 이상의 조건을 비교해야 할 때, 논리 연산자를 사용하여 처리할 수 있습니다.
 아래가 사용할 수 있는 논리 연산자입니다.

연산자 설명 예시  
and
두 조건이 모두 참인 경우  성립되는 연산자.
if  a == 1 and b== 2 :
      print("OK")

: a가 1이고, b가 2 모두를 만족할 때 print문이 실행됩니다
or
두 조건 중 하나라도 참이면 성립되는 연산자.

if  a == 1 or b== 2 :
      print("OK")

: a가 1이거나, 또는 b가 2라면, 둘 중 하나만 만족한다면  print문이 실행됩니다
not
조건을 반대로 뒤집는 연산자.
if  not a == 1 :
      print("OK")

: a가 1이 아니라면, print문이 실행됩니다

물론, 위의 연산자 여러 개를 조합하여 사용 가능합니다. 
그 밖에, 아래 비교 연산자를 활용할 수 있습니다. 

연산자 설명
== 같다
!= 다르다 (같지 않다)
< 좌변이 우변보다 작다
> 좌변이 우변보다 크다
<= 좌변이 우변보다 작거나 같다
>= 좌변이 우변보다 크거나 같다


4. 《  in과  not  in  연산자 》
 :  리스트 혹은 문자열에 해당 문자(숫자)가 있는지? 확인하여  참(True) 또는 거짓(False)으로 반환합니다.
 in과 not in 연산자는 뒤에 for 문과 if문에도 사용되니 기억해 두세요.
1.    x in str   :   str에  x가 있으면 True,  없으면 False를 반환
2.    x not in str   :   str에  x가 없으면 True,  있으면 False를 반환

 

5. 《  for  루프 》
 : for 루프 문의 기본 골격은 아래와 같습니다. 
  for 《변수》 in 《범위》
       <for에 속하는 문장들...>
       <for에 속하는 문장들...>

<예시>

또는 위에 범위에 해당되는 부분을 range( )로 표시하여 아래처럼 줄여 표현할 수 있습니다. 

 

6. 《  while  루프 》
 : while 루프문의 기본 골격은 아래와 같습니다. 
 while조건 》 :
        <조건이  True인 경우 동안 계속 반복 실행될 코드들...>
        <조건이  True인 경우 동안 계속 반복 실행될 코드들...>

<예시>

 

7. 《  break 》
 : while 루프 문이나, for 루프문에서 사용할 수 있으며,  break가 실행되면,  해당 루프 문을 종료하고 빠져나오게 됩니다.

 <예시>

 

8. 《  continue 》
 : while 루프문이나, for 루프문에서 사용할 수 있으며,  while문이나,  for 루프문 속에서 continue 문장을 만나면, continue 문 아래 문장들은 실행되지 않으며, while문이나 for문의 다음 반복으로 계속 이어집니다. 

 <예시>
continue문을 이용하여 < 1에서 10까지 홀수만 출력하기 > & <1에서 10까지 짝수만 출력하기 >

 

9. 《  for문 이중 루프 》
 : for 루프문을 이중으로 이용할 수 있으며,  이중으로 반복해야 하는 곳에 사용하게 됩니다. 
아래, 구구단을 예시로 들겠습니다.
  < 파이썬 구구단 >

>>> < 구구단 2단부터 9단까지 한 단씩 세로로 출력하기 >
>>> for dan in range(2, 10):
            print("=====",dan,"단=====")
            for hang in range(1, 10):
                print(dan," * ", hang,"=",dan*hang)
                print()    # 한 줄 띄움

 

※ 그럼, 이번에는 구구단을 가로로 한 번에 출력해 볼게요. 
>>> < 구구단 2단부터 9단까지 가로로 한 번에 출력하기 >
>>>def gugudan() :
          print (" ====== 구구단 가로로 출력하기 =====")
          for hang in range(1, 10) :
              for dan in range(2, 10):
                  print(dan,"*",hang,"=",dan*hang," | ",end="\t")
                  print()

이미지 클릭시 확대 됩니다

위와 같이 "\t" 탭 출력을 이용해서 가로로 출력이 잘 되었습니다. 
그런데, 약간의 문제는 두 자릿수 값 출력의 경우 출력 자리가 밀려서 정렬이 깔끔하게 되지 않는데요, 
이때는, print문의 출력 형식을, C언어에서와 같은 형식으로 정수의 자리를 지정하여 출력하면 해결할 수 있습니다. 

 < 구구단,  출력 정렬하여 가로로 출력하기 >
>>>def gugudan() :
           print (" ====== 구구단 가로로 자리 정렬하여 출력하기 =====")
           for hang in range(1, 10) :
                for dan in range(2, 10):
                print("%d * %d = %2d | "%(dan, hang, dan*hang), end="\t")
           print()
>>> gugudan()

이미지 클릭시 확대 됩니다

10. 《  pass 》
 : 파이썬에서는 아무 기능을 하지 않는 빈 코드의 역할로 pass 키워드를 사용합니다.
보통 C언어의 비어있는 코드의 역할로 { } 중괄호를 사용하는데,  파이썬에서는 { } 중괄호를 사용하지 않기 때문에,  pass라는 키워드를 사용합니다. 
 pass는 코드가 다소 복잡하거나 사이즈가 어느 정도 되는 코드를 작성할 때 나중에 완성할 함수 같은 부분에 pass를 넣어놓고 최소한의 구조를 완성시켜 놓고 작업하게 되는데, 이러면 나중에 완성해야 할 부분에 대한 표시도 되고, 다른 코드 부분을 테스트하기에도 방해되지 않아 편합니다. 

< 예시 >
score = 100
if score >= 80 :
else:
이와 같이 작성한다면,  나중에 작성한다 하더라도, 우선적으로 구문 형식이 맞지 않고, 다른 부분 에러 테스트에도 이 부분 때문에 에러가 발생하여 불편을 주게 됩니다. 
이럴 때,  아래처럼 우선 아무 역할도 하지 않는 pass를 넣어 작업을 진행하면 됩니다. 
score = 100
if score >= 80 :
    pass
else : 
    pass


11. 《  함수 》

 : 함수는 반복적으로 처리해야 하는 부분을 함수로 만들어 놓고 호출하게 되면, 소스코드가 짧아지고, 크기도 줄어들기 때문에 많이 활용하게 됩니다.  이를 사용자 정의 함수라고 하며,  def  ...  형식으로 만들어 사용할 수 있습니다.
 또한 이미 통상적으로 사용되는 기능들을 함수로 만들어 놓았는데,  이를 내장 함수라 칭합니다. 
내장 함수이기 때문에,  별도의 import 문을 사용하여 라이브러리를 추가하지 않고 바로 사용가능합니다. 

< 파이썬 내장 함수 >

파이썬 내장 함수들 ( Built-in Functions )
abs( ) dict( ) help( ) min( ) setattr( )
all( ) dir( ) hex( ) next( ) slice( )
any( ) divmod( ) id( ) object( ) sorted( )
ascii( ) enumerate( ) input( ) oct( ) staticmethod( )
bin( ) eval( ) int( ) open( ) str( )
bool( ) exec( ) isinstance( ) ord( ) sum( )
bytearray( ) filter( ) issubclass( ) pow( ) super( )
bytes( ) float( ) iter( ) print( ) tuple( )
callable( ) format( ) len( ) property( ) type( )
chr( ) frozenset( ) list( ) range( ) vars( )
classmethod( ) getattr( ) locals( ) repr( ) zip( )
compile( ) globals( ) map( ) reversed( ) __import__( )
complex( ) hasattr( ) max( ) round( )  
delattr( ) hash( ) memoryview( ) set( )  

내장함수 각각에 해당하는 설명은, 공식 사이트의 링크 설명을 참조해보세요.
링크 :  https://docs.python.org/ko/3/library/functions.html

 

내장 함수 — Python 3.9.5 문서

내장 함수 파이썬 인터프리터에는 항상 사용할 수 있는 많은 함수와 형이 내장되어 있습니다. 여기에서 알파벳 순으로 나열합니다. abs(x) 숫자의 절댓값을 돌려줍니다. 인자는 정수, 실수 또는 __

docs.python.org


<문자열 검색 관련 함수들>
문자열에 내용을 검색하여 알려주는 기능의 함수 들입니다. 
함수의 이름은 is xxx ( )의 조합으로 이해하면 기억하기 쉽습니다.

함수 설명    
isalpha( ) 모든 문자가 알파벳인지 조사합니다.
islower( ) 모든 문자가 소문자인지 조사합니다.
isupper( ) 모든 문자가 대문자인지 조사합니다.
isspase( ) 모든 문자가 공백인지 조사합니다.
isalnum( ) 모든 문자가 알파벳 또는 숫자인지 조사합니다.
isdecimal( ) 모든 문자가 숫자인지 조사합니다.
isdigit( ) 모든 문자가 숫자인지 조사합니다.
isnumeric( ) 모든 문자가 숫자인지 조사합니다.
isidentifier( ) 명칭으로 쓸 수 있는 문자로만 구성되어 있는지 조사합니다.
isprintable( ) 인쇄 가능한 문자로만 구성되어 있는지 조사합니다.

위와 같은 함수는 사용자로부터 특정 값을 입력받았을 때, 입력값이 숫자로만 이루어져야 한다든지? 알파벳 소문자로만 이루어져야 한다든지? 특수문자가 있으면 안 된다든지? 등과 같은 상황에서 체크를 쉽게 할 수 있어 활용성이 좋습니다. 

<예시 : 사용자 입력값에 숫자만 허용하고자 할 때>

 

12. 《  튜플과 리스트 》
 : 튜플은 리스트[list] 처럼 파이썬이 인식하는 데이터의 한 종류입니다.  리스트와 비슷한점이 있지만, 결정적인 차이가 있습니다. 
 - 리스트와 튜플은 모두 하나 이상의 값을 묶는 용도로 사용합니다. 
 - 리스트는 [ 1, 2, 3, ... ]  중괄호를 사용하고,  튜플은 ( 1, 2, 3, ... ) 소괄호를 사용합니다.


 - 리스트는 아래 이미지처럼, 요소를 추가하거나 다른 값으로 수정이 가능합니다.


- 하지만, 튜플은 값을 참조하는 것은 가능하지만, 처음 정해진 값의 요소를 수정 변경할 수 없는 차이가 있습니다.

튜플은 기존 값에 값을 추가하거나 변경이 불가 합니다

- 이렇듯 튜플은 리스트에 비해 유연하지도 않고, 리스트형만 있어도 될 것 같지만, 분명한 쓰임새가 있습니다.
- 예를 들어, 생년월일 정보나, 고유 ID 요소 등, 의도하지 않은 조작에 의해 요소값이 변경되어서는 안 되는 데이터 유형에 사용할 수 있습니다.

- 리스트관련 사용가능한 함수와 연산에 대해서는 앞선 내용에서 많이 다루었는데요,  그럼 튜플 관련 함수와 연산에 대해 살펴볼게요.  여기서 리스트 데이터형에 사용된 함수의 대부분이 튜플에도 그대로 적용되는 경우가 많습니다.

함수 설명  
len(x) 튜플 x의 길이(요소의 개수) 반환
min(x) 튜플 x의 요소 중에서 가장 작은 값 반환
max(x) 튜플 x의 요소 중에서 가장 큰 값 반환
s.count(x) 튜플 s에 저장된 요소 중에서 x의 개수 반환
s.index(x) 튜플 s에 저장된 요소 중 첫 번째 x의 인덱스 값 반환

튜플의 함수 적용 예시

그리고, 튜플은 리스트와 마찬가지로 아래와 같은 연산이 가능하다.

위 연산에서 보면, Tpl + (6, 7) 연산의 결과로 기존 튜플에 요소가 추가(변경) 된 것으로 보이지만, 다시 Tpl을 출력해보면, 기존 값(1, 2, 3, 4, 5)이 그대로 있으며,  수정된 것이 아니라 새로운 튜플이 만들어 진 것입니다. 그래서 이를 Tpl2에 저장해서 보여준 것입니다.  기타 리스트에서 가능했던 * 곱하기 연산이나 [2:6] 인덱스 값 읽기 등 수정되지는 않지만 모두 동일하게 가능합니다. 
 그리고 아래처럼 for 루프 문에서 사용하던 문법도 동일하게 적용가능합니다. 

for 문에서의 리스트와 튜플 요소 참조

  단,  아래와 같은 range ( ... ) 함수는 튜플이 아니라 range( ) 라는 자체 함수를 참조 사용한 것입니다. 
  range 함수 원형 :  range( 초기값, 최종값, 증가값)  - 증가값은 생략가능(1씩 증가)

그런데,  range( .... ) 함수가 없다면, 예를들어, 1에서 100까지의 수를 리스트나 튜플로 참조하려면 매우 짜증?이 나겠지요?    (ex,  for i in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ....  ]   ) 
  그래서 range ( ) 함수를 사용하면 간단히 해결 되며,  step 간격도 넣어 줄 수 있습니다.

- 또한 아래처럼, range( ) 함수를 이용하면,  매우 긴 연속된 수를 간단히 리스트나 튜플로 만들 수 있습니다. 
  (예, 만약 1~100까지의 수를 리스트 변수나, 튜플 변수의 요소로 만든다고 한다면,  Lst = [1, 2, 3, 4, 5.... 100??? ], 
Tpl =  (1, 2, 3, 4, 5, ... 100???)    어휴....  생각만해도 손목의 피로도가... )

range( )함수를 이용하면 많은 수의 요소를 직접 입력하지 않아도 된다


[ 리스트와 튜플 데이터의 상호 변환이 가능합니다! ]

아래처럼   list(  ) 함수와,  tuple( ) 함수를 이용하면, 리스트 데이터를 튜플데이터로, 튜플데이터를 리스트 데이터로 상호 변환이 가능합니다.

리스트와 튜플 데이터의 상호 변환

 

[ 문자열을 리스트와 튜플 데이터로 저장하기! ]
아래처럼, 문자열을 하나하나 떼어 리스트 데이터나 튜플 데이터로 각각 저장 가능합니다. 

문자열을 리스트와 튜플 데이터로 저장하기!

 

[ range (  ) 함수 의 범위 거꾸러 지정하기 ]
 
range 함수 원형 :  range( 초기값, 최종값, 증가값)  - 증가값은 생략가능(1씩 증가)

range 함수의 범위를 거꾸로 넣기 위해 range (10, 1) ,  또는 range(10, 1, 1) 로 해서는 안 됩니다.  
range 함수 원형을 보면, 생략가능한 세번째 요소가 기본적으로 증가값 이기 때문에, 초기값 10에서 1까지 증가 시킬 수는 없기 때문입니다.  만약 이렇게 하면 비어 있는 값으로 저장됩니다. 
따라서, 아래 이미지 처럼, -1, 또는 -2처럼 음수 값의 감소값을 주어야 합니다. 

range 함수의 범위를 거꾸로 넣기 위해서는 세번째 요소를 음수로 주어야 함

 

13. 《  함수 만들기 》
 : 파이썬에서 함수 만들기에 대해 다루어 보겠습니다.  파이썬에서 함수를 'def' 라는 표시자를 사용하여 함수를 정의하고, 함수명 예를 들어 Hello( )을 정하고 ' : ' 콜론을 붙여서 그 아래 줄부터 함수의 내용을 넣으면 됩니다.   그리고 함수명 Hello( )를 호출 하여 사용할 수 있습니다. 
⊙ 함수의 유형은 대략 아래 세가지로 분류할 수 있습니다. 
1. 아무 값도 전달 받지 않는 함수
2. 값을 전달받는 함수
3. 값을 반환하는 함수 (return 명령을 갖는 함수) 

먼저 1번 함수의 예시는 아래와 같습니다. 
<1. 아무 값도 전달 받지 않는 함수 예시>

인자의 전달이 없는 기본 함수의 유형

<2. 값을 전달 받는 함수 예시>
두 번째 함수 유형으로, 인자 값을 전달만 받고 처리하는 함수의 유형입니다.  함수를 호출 할 때, 인자값 또는 인수값이라 불리우는 영어로 argument 를 전달해 주고 ,  함수에서는 이 값을 처리해서 출력하거나 하며 결과값은 되돌려 주지 않는 형태의 함수 유형입니다.  아래 예시에서는 결과값 확인을 위해 print문을 사용했으나, 보통은 처리만 하고 아무결과도 반환하지 않도록 작성할 수 있습니다.

인자값을 전달하는 함수 유형 만들기

 

<3. 값을 전달(반환) 받는 함수 예시>
일반적으로 인자값을 매개변수를 통해 전달받아 처리하고 'return' 명령어를 통해 결과값을 반환하는 유형의 함수입니다. 

인자값을 매개변수로 받아 처리후 전달(리턴)하는 함수 만들기 유형

 

<4. 매개변수 값 이름을 지정하여 전달하기 >
함수내에서 지정한 매개 변수 이름과 순서대로 전달해야 원하는 출력을 얻을 수 있습니다.

만약,  함수에서 정의한 순서를 무시하고 바꾸면, 아래처럼, 원하지 않는 결과를 얻을 수 있습니다.

그래서, 아래 처럼, 매개변수를 직접 지정해서 전달 할 수도 있습니다. 

이렇게 지정하게 되면, 매개 변수 입력 순서에 상관 없이 전달 할 수 있게 됩니다 .

print 문도 일종의 함수 이며, 사용자 정의 함수가 아닌, 내장함수 입니다.  여기에도, 매개 변수가 사용되는데요, 

end 라는 매개 변수는 출력문 내용 끝에 출력을 지정할 수 있습니다.
- end ='  '      →  print 함수의 경우 기본적으로 이렇게 단따옴표''혹은, 공백이 있는 단따옴표를 매개변수를 넣게 됩니다 
- end =''        →  출력 결과는 공백이 없어도,  더 많은 공백을 넣어도 동일하게 처리 됩니다. 
- end =')^^('   →  end 문에 특정한 문자를 넣으면 해당 문자로 마무리 됩니다. 
- sep ='/  '      →   sep은 separator 구분자로 출력 내용 사이에 출력하여 구분시켜 줍니다. 
  또한, 이 둘을 같이 사용할 수 있습니다.  아래 예시들을 참고해 보세요.

 

<5. 매개변수에 디폴트 값 지정하기 >
: 사용자 정의 함수에서 매개변수에 디폴트 값을 지정해 줄 수 있습니다. 
단, 디폴트 값이 있는 매개변수 항목은 디폴트 값 없는 항목 뒤에 위치해야 합니다. 

 

반응형
반응형

권장사항 :  기초 부분 전체를 총정리하였기에 내용이 상당히 길어 전체적으로 쭉 보시거나,  원하는 부분을 찾을 때는 'Ctrl + F' 키를 눌러 단어 검색으로 바로 이동해서 보시면 됩니다.  첨부된 이미지는 모두 직접 작업하여 첨부하였기에 이미지 클릭시 확대되어 선명하게 보실 수 있습니다. 


파이썬 기초#5】 파이썬 기초 한방에 정리하기!  #1편 , 코드 작성법 핵심 요약, 총정리!

파이썬은 스크립트 방식의 프로그래밍 언어입니다. 

- 스크립트(Script) 언어의 사전적 의미는 ,  연극의 대사 등이 적혀 있는 스크립트(Script)에서 유래하였으며, 연기자가 스크립트를 보고 연기를 수행하듯이 컴퓨터가 스크립트를 읽어 수행한다는 의미를 지니고 있습니다.    
- 또한 파이썬은 한 줄 한 줄 읽어 바로바로 실행하는 인터프리터(Interpreter) 방식을 취하고 있습니다. 

그럼, 여기서 컴파일(Compile) 언어와 스크립트(Script) 방식 언어의 차이점을 설명드릴게요. 

컴파일러와 인터프리터의 차이점(이미지 참조: guru99.com)

위 이미지를 보면  컴파일 언어(컴파일러)는 소스코드를 컴파일러에 의해 기계가 알아 먹을 수 있는 기계 어코드(Machine Code-2진수)로 코드 전체를 변환한 다음 실행을 하는 방식이며, 
스크립트 언어(인터프리터)는 한 줄씩 바로 해석하여 실행을 시키는 구조로 , 2진수로된 기계어가 아닌, 인터프리터 방식으로 해석할 수 있는 Byte Code로 변환하여 한 줄씩 바로바로 실행시키는 구조의 방식입니다.

1. 컴파일 언어의 장단점 :

컴파일 언어의 장점은  컴파일 과정에의해 코드 전체가 이미 해석이 된 2진수의 기계어 코드를 실행시키기 때문에, 실행 속도가 매우 빠른 장점을 가지고 있고,   단점으로는 약간의 코드 수정이 필요하더라도, 코드 전체를 다시 컴파일해야 하며,  코드의 크기가 크고 방대할 경우 이런 별도의 컴파일 과정으로 인해 다소 번거롭고 시간 소요가 있는 단점이 있습니다.   
 (컴파일 언어의 종류 : C , C++ , C# , Java ...  )

 

2. 스크립트 언어의 장단점 :

스크립트 언어의 장점은 소스 코드 수정이 빠르고 간단해서 수정이 빈번하게 발생하는 프로젝트에 유리하며, 따라서 개발 시간이 단축되는 장점이 있습니다.  
스크립트 언어의 단점으로는 실행속도가 컴파일 방식의 언어에 비해 상대적으로 많이 느리다는 단점이 있습니다.  
 (스크립트 언어의 종류 : Python, Ruby, Perl, PHP, JavaScript )


3.  소스코드 형식 : 

 C언어나 JAVA와 같은 언어의 경우  중괄호 {  } 등으로 코드 블록을 구분하는 포맷을 지니고 있고 중괄호 내에서는 일정한 형식을 지키지 않아도 됩니다.  예를 들어,  들여 쓰기가 문법적으로는 필요하지 않으며, 공백의 개수나 코드 길이가 길 경우 별다른 형식 없이 다음 줄로 내려쓸 수 있는 구조를 가지고 있습니다. 

 Python과 같은 경우는 들여쓰기나 공백의 사용에 주의가 필요합니다. 

 

4. 파이썬(Python) 코드의 작성 구조 및 형식

 ① 대소문자를 구분해야 합니다.  예를 들어, 변수명으로 'NUM' 과  'Num'과 'num'은 각각 다른 변수입니다.
 ② 명령어(내장 함수)는 일반적으로 모두 소문자입니다. 
    예를 들어, 
    >>>  print(2+3)        ⟵  (맞음)  
    >>>  Print(2+3)        ⟵  (에러)  
    >>>  PRINT(2+3)      ⟵  (에러)  
 

  파이썬에서는 if 문장이나 for문장의 경우 하위 문장들을 중괄호 { } 등으로 구분 짓지 않기 때문에, 들여 쓰기(Indent)로 구분합니다.  일반적으로는 4칸의 공백을 권장합니다. 
 ③ 인터프리터 언어의 특성상 한 줄씩 코드 구조가 해석이 되어야 하기 때문에, if 문장이나 for 문장의 경우 문장 끝에  ' : ' 콜론으로 마쳐서 표시하게 되며,  ' : ' 콜론 표시 이후 들여 쓰기 된 문장들은 모두 해당 if나 for 문장에 포함된 내용으로 인식 및 처리하게 됩니다.
  
>>>if num > 15 :            ⟵  ' : ' 을 표시하여 if 문장의 시작을 알림
   >>>    print("=====")    ⟵  공백을 주어 if 문에 속해 있는 문장으로 처리함
   >>>    print(num)         
⟵  공백을 주어 if 문에 속해 있는 문장으로 처리함
   >>>print("감사합니다")    ⟵  if 문에 속해 있지 않은 문장

 

 ④ 들여쓰기해야 하는 문장이 아닌 경우는 맨 앞에 공백이 들어가서는 안 됩니다. 

   >>>1+2 
   >>>3        ⟵  정상 실행

   >>>1+2↵      ⟵  맨 앞에 공백이 들어간 경우
   SyntaxError :  unexpected indent     ⟵  실행 에러
      

  ⑤ 코드 주석은  '#'으로 표시합니다.  (다만, 아쉽게도 파이썬은 여러 줄 묶음 주석은 지원하지 않음)
  ### 파이썬 실습 1번  
  for i in range(5) :        # 0~5 까지 반복 실행합니다. 
      print( "num =" , i )

 >>> num=0
 >>> num=1
 >>> num=2
 >>> num=3
 >>> num=4

⑥  위의 예제에서 처럼 파이썬 쉘(Shell) 실행 모드에서 작성하고 있던 for 문이나  if 문에서 벗어나려면 그리고 실행이 되려면 엔터 입력을 두 번 하면 됩니다.
  for i in range(5) :       # 0~5 까지 반복 실행합니다. 
      print( "num =" , i )  ↵  
      ↵  

 >>> num=0
 >>> num=1
 >>> num=2
 >>> num=3
 >>> num=4

 

⑦ 파이썬 다운로드 버전?  및  실행시키는 두 가지 모드. 
 파이썬 다운로드 페이지(python.org)에서  파이썬을 다운로드하고 설치할 수 있습니다.
파이썬은 2000년도에 2.0 버전 발표 이후,  2.x 대 버전과,  3.x 버전의 두 갈래로 나뉘어 발표됩니다. 
2.x 대 버전에서부터 비 영어권 언어를 지원하기 시작했지만, 여러가지 문제점과 시스템의 한계로 인해 
3.x 대 버전에서는 과거의 시스템을 단절하고 파이썬을 완전히 새롭게 만든 버전을 출시한 건데요,  유니코드를 전면적으로 도입하고 내부적으로 많은 변화가 있어 2.x 대 버전과 호환되지 않습니다. 
그런데,  2008년에 3.0 버전을 발표하고 그 뒤에 다시 2010년도에 2.7 버전이 발표 된 이유는,  기존 2.x 버전 베이스로 구축한 시스템에서는 3.x 버전 적용이 되지 않기 때문에,  유지보수 및 업그레이드를 위해 별도로 발표된 것인데요,  그 마저도 더 이상의 버전 업그레이드나 지원이 2020년도에 종료되는 것으로 발표되었습니다.    따라서, 기존 2.x 대 시스템을 다루어야 하는 것이 아니고, 새로 파이썬을 시작하시는 분들은 당연히 3.x 대 버전을 활용하는 것이 좋습니다. 
2021년 04월 기준으로 최신 버전은 3.9.4 Version 입니다. 


그럼,  파이썬을 다운로드 받아 설치하면 대략 두 가지 형태의 실행 모드를 선택할 수 있는데요, 
 Python Shell(쉘 모드) 모드에서 대화형으로 한 줄씩 작성하고 실행하는 형태로 할 수도 있고, 

파이썬 쉘(Shell) 모드에서 대화형으로 코드 작성

 메모장과 같은 문서 작성 페이지를 열고 "test.py"  형태로 파일을 저장하고 실행 시키는 형태로 작성할 수 있습니다. 

파이썬 IDLE를 실행시키고 File 》 New 메뉴로 새파일 작성 후 실행한 모습

위 이미지에서 보듯 파이썬 IDLE를 실행시키고 File 》 New 메뉴로 새 파일 작성 후 실행(F5)하면,  결과 값은 뒤에 있는 Shell 창을 통해 나타납니다.

 

⑧ print 명령


 대화식 모드에서는 print 명령을 사용하지 않더라도 수식이나 변수를 입력하면 출력문으로 해석하여 그 값을 출력해 줍니다.   ( 아래 예시,   'print ( x )'로 출력하는 것이 기본이지만,  x를 입력 후 엔터 하여도  x 값이 출력됨)

 

print ( ) 함수의 기본 원형  : 
     print (출력 내용 [, sep=구분자]  [, end=끝 문자] )       
 [ ] 괄호의 내용은 생략 가능하며 필요할 경우 입력합니다. 

 아래 이미지의 print ( ) 문의 옵션 출력에 대한 예시를 참고하세요. 


⑨ 명령어 (내장 함수) 속 수식 계산이나  문자열 출력이 상당히 자유롭습니다. 
>>> print (2+3+(2*3)-5)

6

>>> print ("고양이 " * 3) 

고양이 고양이 고양이

이런 방식은 아래처럼 유용하게 응용할 수 있습니다.   보통 화면 출력 시 구분선으로 '---------------------' 같은 것을 여러 개 출력하려 할 때 응용하면 편리합니다. 

⑩ 입력 :  입력은 아래와 같은 형태를 취합니다. 


 변수 = input(' 질문 내용 ')

아래 이미지의 입력법 예시를 참조하세요

다만, 현재와 같은 입력은 '2010'이라는 값이 문자로 처리되기에 아래와 같은 산술 계산 시 에러가 발생합니다. 

 따라서,  이런 경우에는 eval( ..... )이라는 내장 함수를 사용하여 결과 값을 int 형으로 바꾸어 줄 수 있습니다.

다만, eval (  ) 함수는 함수 자체의 막강한 변환 기능으로 인해  코드 구조가 복잡한 곳에 사용하게 되면, 의도하지 않은 값을 변환받을 가능성이 있어,  단순 코드 외에는 사용을 권하지는 않습니다.   
따라서,  보통의 경우  int(  ) 변환 함수를 사용하는 것을 권합니다.


마지막으로 print (  ) 함수와 input (  ) 함수를 결합하여 아래와 같은 형태로도 활용 가능합니다. 

 

⑪  키워드 (Keyword)와  변수명 
  : 키워드는 if ,  for , while과 같은 단어로, 내장 함수 이름과 같은 예약어를 의미합니다.   따라서 키워드에 해당하는 이름으로는 변수명으로 만들어서는 안 됩니다.    
 즉, print와 같은 내장 함수를 변수명으로 사용할 수는 있지만  일단 사용하는 순간 이후부터는 print를 출력 함수로 사용할 수 없게 됩니다. 
예시)


 《 키워드 》

분 류 키워드(Keyword)
제어문 if    else    elif    for    while     break   continue
상 수 True    False    None
논리 연산자 and   or   not    in
함 수 def   return   lambda   nonlocal    global
예외 처리 try    except    finally    raise
모 듈 import    from    class
기 타 is    del    with    as    yield    assert    pass


  ※ 변수명 지정 원칙 :
 -  변수명은 대소문자를 구분하며 소문자로 작성하는 것을 권합니다.  ( num ,  Num ,  NUM  은 모두 다른 변수명으로 처리됨)
 -  변수명에는 알파벳, 밑줄 문자, 숫자로 구성할 수 있으며, 공백이나 +, - 나 : / 같은 특수기호 등은 사용할 수 없습니다
    (두 단어를 하나의 변수로 만들 경우에는 보통  예를 들어,  'year_data'   혹은  'YearData'와 같은 형태로 작성하면 됩니다.)
 -  변수명에 첫 글자로 숫자는 쓸 수 없습니다.   'run2you'  ,  'start100'과 같은 형태는 가능합니다.
 -  파이썬은 유니코드를 지원하기 때문에, 한글이나 한자와 같은 문자도 변수명으로 사용 가능합니다. 

 다만,  협업 작업 등에서의 호환성을 위해 일반적으로는 짧고 간결한 영어 표기를 권합니다. 
 
 - 파이썬의 변수는  정수형, 실수형, 문자열형 등과 같은 변수의 타입을 사전에 지정하지 않아도 됩니다. 
   변수에 어떤 값이 저장되는지에 따라  타입이 결정됩니다.

 또한, 아래 예시처럼,  특정 타입으로 이미 지정된 변수 명도, 다른 타입의 자료가 입력되면 변수의 타입이 바뀝니다.

 이런 파이썬 변수의 특성을 동적 타입 (Dynamic Type)이라고 합니다. 

  끝으로 하나의 코드에 사용된 변수명을 코드 내에서 삭제할 수 있습니다.    ( 다만, 프로그램이 종료되면 어차피 메모리에서 삭제됨으로 자주 활용되지는 않습니다)

 - 변수에 초기값 입력시 한꺼번에 (순차적으로) 입력하는 것도 가능합니다. 
  예) 아래는 변수 초기값 지정시 기본 스타일
 >>> name = "Rasino"
 >>> age = 21
 >>> attractive = True

   하지만 아래처럼 간편하게 한 번에 대입시키는 것도 가능합니다. 
 >>> name , age, attractive = "Rasino" , 21 , True

   또한, 변수명이 각각 달라도 (초기)값이 같을 때는 아래처럼 지정할 수도 있습니다. 
>>> kimbob  =  mandu =  odeng  =  noodle  =  5 

⑫ 파이썬의 주요 자료형 

자료형 설명   예시  
정수 소수가 없는 숫자 ex)  a = 5   ,   b = 10   
부동소수 소수가 있는 숫자 ex)  a = 3.5 ,   b = 3.14169
불 (Bool (불) True 또는 False 값을 가진 자료형 ex)  a = True ,    b = False 
문자열(String) 문자 데이터를 순서대로 나열한 데이터

ex)  a ='Rasino'   ,     >>> print(a[0])  →  R  
리스트(List) 숫자나 문자열 등의 요소를 순서대로 나열한 구조체 (추가 / 삭제 가능) ex)  a = [ 'R','a','s','i','n','o' ] ,  >>> print(a[3])  →  i  
튜플(Tuple) 리스트와 비슷하나, 초기값이 정해지면, (데이터 추가 / 삭제가 불가함) ex)  a = ( 'R','a','s','i','n','o' ) ,  >>> print(a[4])  →  n  
딕셔너리(Dictionary) 각 데이터 마다, 이름(Key)이 있는 데이터 모음.  연관성 있는 데이터들의 묶음으로 사용하기 좋음
{'key' : 'Value' , 'key' : 'Value' , ... }
ex) a = { 'name' : '홍길동' , 'age' : 29 , 'phone' : '010-123-1234' }

 1) 문자열 특징 :
- 문자열은 큰따옴표 "...." , 단 따옴표 '....' 모두 가능하며,  "....' 섞어 쓰면 에러 발생합니다.  
- 코드 작성 시 문자열 길이가 길 경우, 임의로 두 줄 이상 내려쓸 수 없습니다.  
 ( 문자열 두 줄 이상 표기 에러 x)
 stringA = "동해물과 백두산이 마르고 닳도록
                하느님이 보우하사 우리나라 만세..."

 ( 문자열 두 줄 이상 표기 올바른 방법 #1 )
 stringB = "동해물과 백두산이 마르고 닳도록
                하느님이 보우하사 우리나라 만세
                무궁화 삼천리 화려강산..."
  ' ∖'(역슬래시) 표시는 한글 자판에서는 '\'로 표시됩니다.
 역슬래시는 문자열뿐 아니라,  일반적인 수식이나 다른 코드의 작성 시에도 적용 가능합니다. 

한 줄 내려쓰기 역슬래시(\) 표기 방법

          
( 문자열 두 줄 이상 표기 올바른 방법 #2 )

 stringB = ''' 동해물과 백두산이 마르고 닳도록
                 하느님이 보우하사 우리나라 만세
                 무궁화 삼천리 화려강산... '''
   단 따옴표 3개를 앞뒤로 묶어주거나,  """  ....   """  큰따옴표 3개를 앞뒤로 묶어주면 됩니다.

- 스트링 머지 기능 (stringmerge) :  하나의 변수에 콤마로 구분되지 않은 문자열 묶음을 입력하면 합쳐집니다. 
  ex1) >>> A = "Korea" " Fighting" "2021"  
        >>> print ( A )
        KoreaFighting2021

  ex2) >>> B = ( "Korea"
                       " Fighting"
                       "2021"  )

        >>> print ( B )
        KoreaFighting2021

 ( 정수를 문자열로 변환 ) 
문자 "2021"을 정수로 바꿀 때는 int(2021)라고 설명을 드렸는데요,  반대로 정수를 문자열로 바꾸는 함수는 str(2021)를 사용하면 됩니다. 
  ex1) >>> A = "Korea" + str(2021)
        >>> print (A)
        Korea2021

※ 주의 사항 :  하나의 print( ) 함수 내에서는 문자열로만 출력하든지 int type과 같은 숫자 형태로만 구성 되어야 합니다. 
즉,  print("문자열..." + 정수 ) 와 같은 조합시 문법에러가 납니다. 
따라서 이럴때는 문자열 캐스팅 연산자('str( )')를 사용하여 문자열로 통일시켜 주면 됩니다. 
ex1) 



( 문자열 실수를 숫자 실수로 변환 )

int(  ) 함수는 문자열 실수 숫자를 소수점 이하를 버리고 숫자로 변환하기 때문에,  float (  ) 함수를 사용해야 합니다.
 그리고 (실수를 정수로 변환) 하는 방법도 아래 이미지를 참고해 주세요. 


(반올림 함수 사용하기 )

위 이미지에서 보듯 실수를 단순하게 int( ) 함수를 사용하여 변환할 경우 소수점 이하는 버려지게 되는데요,  
소수점 이하 반올림이 필요하게 될 경우 round ( ) 함수를 사용합니다. 

 

 ( 문자 코드 확인 함수 )     
  - 문자 코드 확인 함수 ord(  )와 chr( ) 함수 :   ord 함수는 아스키(ASCII) 문자뿐 아니라,  한글이나 한자와 같은 문자 변환 시에도 유니코드 값을 출력해 줍니다.  ( 3.x 버전부터 파이썬은 대부분의 유니코드 처리 가능한 언어이기 때문 )

 

 2) 리스트(list) 특징 :
- 리스트는 구조체의 특징을 가지고 있기 때문에,  정수나 실수 , 문자열 등을 [  ] 대괄호로 묶어 하나의 변수에 담아 놓을 수 있습니다. 
  ex)
  >>>  A = [ 1 , 2, 3, 4, 5] 
  >>>  B = [ 'a', 'b', 'abc', 'kt' ]
  >>>  C = [ 'a', 'b', 1 , 2, 3, 'abc', '12kt' ]
 - 리스트형은 배열의 특성도 지니고 있기 때문에,  특정 순서의 항목을 꺼내거나 삭제 추가 변경 등이 가능합니다.

- 리스트형 데이터의 연산(슬라이싱-Slicing 연산) :  리스트형을 대상으로 슬라이싱 연산이 가능한데요,  다음과 같은 자료의 추출이나 편집이 가능합니다. 
또한, 슬라이싱으로 값의 수정이나 추가 삭제도 가능합니다.

위 이미지를 보면,  값의 추가는 값을 변경하는 것으로 이해하면 됩니다. (A[2:3]은 3의 값을 3, 4로 바꾸는 것)
 즉,  A=[1, 2, 4, 5, 6, 7, 8, 9]  일 때, 2와 4 사이에 3을 추가하려고 한다면, 숫자 4를  3과 4로 바꾸는 것으로 이해해야 합니다.   이것이 슬라이싱을 이용한 추가 방법입니다.   [2:3] 에 인자로 사용된 2 : 3을 인덱스라 표현합니다. 
인덱스의 제일 처음 값인 0을 생략할 수 도 있습니다.
예를 들어  A [1, 2, 4, 5, 6, 7, 8, 9]  일때,
[ : 3 ]은 인덱스 값 처음부터 3 앞 까지를 의미 합니다.   즉,  [ 0 : 3 ]와  [ : 3 ] 은 같습니다. 
또한,  [ 4 : ]는 인덱스 값 4부터 끝까지를 의미합니다.  즉,  [ 4 :  ]와  [ 4 : 10 ] 은 같습니다.
그리고 [  :  ]는 리스트 전체를 의미하며,  따라서,  리스트 전체를 다른 것으로 변경할 수도 있습니다. 

또한,  아래처럼 슬라이싱의 인덱스 연산으로 리스트 값 전체 삭제도 가능합니다.  A [ : ] = [ ]

슬라이싱 인덱스 연산을 통해 데이터를 몇 칸씩 건너뛰며 출력하거나 변경하는 것도 가능합니다. 
또한,  인덱스 값 중에서 짝수 번째나 홀수 번째 자료를 출력하는 것도 가능합니다. 

A [0:15:2]에서 2는 1칸의 Step 값을 의미하며, 두 칸은 3,  세 칸이면 4로 하면 됩니다.

2) 리스트(list) 와 함수들 
  :  아래와 같은 기존 함수를 이용해서 리스트 연산 (추가 , 삭제 , 반환 ... 등 )을 수행 할 수 있습니다. 

함수명  (s 는 list 이름을 의미) 설 명  
s.append( x ) 리스트 s의 끝에  x를 추가
s.extend( t ) 리스트 s의 끝에 리스트 t의 내용 전부를 추가
s.clear( ) 리스트 s의 내용물 전부 삭제
s.insert( i , x ) s[ i ]에 x를 저장(삽입)
s.pop( i ) s[ i ]를 반환 및 삭제 
s.remove ( x ) 리스트 s에서 제일 앞에 등장하는 x를 하나만 삭제
s.count( x ) 리스트 s에 등장하는 x의 개수 반환
s.index( x ) 리스트 s에 처음 등장하는 x의 인덱스 값 반환


①  append 함수와 extend 함수  
 : append 와 extend 함수의 차이점은,   append 함수는 하나를 추가할 때 사용하고, extend 함수는 특정 리스트 전체를 추가할 때 사용함.  (아래 예시 참조)


②  insert 함수와 clear 함수 
 : insert 함수는 특정 위치(인덱스 값)에 추가하고자 하는 값을 추가합니다.  해당 인덱스에 있던 값이 덮어 써지거나, 없어지지 않고 모두 하나씩 뒤로 밀리게 됩니다.   (인덱스 값은 0 부터 시작입니다)
 : clear 함수는 리스트 안에 있던 내용을 모두 삭제함.


③  pop 함수와 remove 함수 
 : pop 함수는 표시한 인덱스(위치) 값을 삭제합니다.   remove 함수는 표시한 값을 list 함수에서 찾아 삭제합니다. 
 pop과 remove의 차이점은 pop함수는 인덱스(위치)를 기준으로 삭제한다는 점이며, remove 함수는 인덱스 기준이 아닌 list 안에 있는 '값'을 기준으로 삭제해 주는 것이 다릅니다.   또한 pop함수는 삭제된 값을 출력해 주는 특징이 있습니다.   만약 리스트에 없는 값을 삭제하려한다면,  에러를 출력합니다.


④  count 함수와 index 함수 
 : count 함수는 리스트 속에 찾는 값이 총 몇 번 등장하는지 합계하여 알려주며,  index 함수는 찾는 값이 처음 등장하는 인덱스(위치)값을 출력해 줍니다. 


⑤  len ( ) 함수와 min ( ) , max ( ) 함수 
 : 리스트 자료에서의 len( ) 함수는 자료에 포함된 전체 갯수를 알려줍니다.   min ( ) 함수는  리스트 중에서 제일 작은 수를 알려주고,  max ( ) 함수는 제일 큰 수를 알려줍니다.


문자열의 길이를 반환해 주며,  min( )은 알파벳 순서상 가장 앞에 있는 문자를 알려줍니다. 
max( ) 함수는 알파벳 순서상 가장 뒤에 있는 문자를 알려줍니다.  알파벳 순서에서 대문자가 소문자 보다 순서는 앞에 있습니다.  순서상으로 A, B, C, ...  X, Y, Z, a, b, c, ...  x, y, z  이런 순서로 됩니다.    아래 예시를 참고해 주세요.

 

⑥  기타 문자열 관련 함수들
 : 파이썬에서는 문자열도 리스트와 마찬가지로 객체(Object)로 인식합니다. 따라서 각각의 객체(문자열)를 컨트롤 할 수 있는 아래와 같은 함수를 사용할 수 있습니다. 

함수 사용 예시 str은 변수명 설명  
count( ) str.count("xx") 문자열(str)에 xx가 등장하는 횟수 반환한다.
lower( ) str.lower( ) 문자열(str)의 내용을 전부 소문자로 반환한다.
upper( ) str.upper( ) 문자열(str)의 내용을 전부 대문자로 반환한다.
strip( ) str.strip( ) 문자열(str) 앞, 뒤에 위치한 공백을 모두 제거한 문자열 반환
lstrip( ) str.lstrip( ) 문자열(str) 앞에(left) 위치한 공백을 모두 제거한 문자열 반환
rstrip( ) str.rstrip( ) 문자열(str) 뒤에(right) 위치한 공백을 모두 제거한 문자열 반환
replace( ) str.replace(old, new) 문자열(str)에서 old를 new로 교체하여 반환
split( ) str.split( ) 문자열(str)에서 공백등의 기준문자를 가지고 구분 후 리스트 에 담아서 반환
find( )
 또는 rfind ( )
str.find("xx")   ,   str.rfind("xx") 문자열에서 특정 문자"xx"를 찾아 그 위치값(인덱스)을 반환
isdigit ( ) str.isdigit( )  문자열 str이 숫자로만 이뤄져 있으면, True, 아니면 False반환
isalpha( ) str.isalpha( ) 문자열 str이 알파벳으로만 이뤄져 있으면, True, 아니면 False반환
startswith( ) str.startswith("aaa") 문자열 str이 "aaa"로 시작하면, True, 아니면 False 반환
endswith( ) str.endswith("bbb") 문자열 str이 "bbb"로 끝나면, True, 아니면 False 반환

1.  count ( ) 함수 사용예시
 : 문자열 속에 's' 문자의 수를 카운트하여 줌.


2.  lower ( )
: 문자열을 모두 소문자로 변환하여 특정 변수에 저장 하거나,  원래의 문자열에 바꾸어 대입시킬 수 있습니다.

3.  upper ( )
: 문자열을 모두 소문자로 변환하여 특정 변수에 저장 하거나,  원래의 문자열에 바꾸어 대입시킬 수 있습니다.

 

4.  strip ( ) 함수 
: 문자열 앞과 뒤에 있는 공백을 제거할 수 있는 함수입니다. (문자열 중간의 공백은 제거하지 않습니다)


5.  lstrip ( ) 함수 
: 문자열 앞(left)에 있는 공백을 제거할 수 있는 함수입니다. 

 

6.  rstrip ( ) 함수 
: 문자열 뒤(right)에 있는 공백을 제거할 수 있는 함수입니다.   (또한, strip , lstrip, rstrip 함수 모두 아래 예시처럼, 적용된 함수 결과를 원래의 변수에 대입시킬 수 있습니다)


7.  replace ( old, new ) 함수 
: 문자열에 속한 특정 문장을 다른 문장으로 바꿀수 있는 함수입니다. 
  (예시, replace("e", "a") 라고 할 때,  'e'라는 문자를 모두 'a'라는 문자로 바꾸어 주게 되며,  replace("e", "a", 1) 처럼, 만약 옵션에 숫자 1을 넣으면 앞에서부터 순서대로 하나만(숫자만큼) 빠꾸어 줄 수도 있습니다. ) 
아래 예시는, 문장속에 "Rasino" 문자열을, "Python" 문자열로 바꾸는 예시입니다.


8.  split ( ) 함수 
:  문자열에서 ' ' 공백이나 특정 문자를 기준으로 쪼개어 리스트라는 형식으로 담아 줍니다.


9.  find ( )  &  rfind ( ) 함수
문자열에서 특정 문자"xx"를 찾아 그 위치값(인덱스)을 반환합니다. (인덱스 값은 0부터 카운트 합니다)
  find ( ) 함수는 문장의 처음(좌측)부터 찾기 시작하고,  rfind ( )함수는 문장의 뒤(오른쪽)에서 부터 해당 문자"xx"를 검색합니다.   

 

10.  isdigit ( ) 함수  
 문자열 함수 str.isdigit( ) 에서  str이 모두 숫자로 이루어져 있을 경우, True를 반환하며, 그렇지 않을 경우 False를 반환.

11.  isalpha ( ) 함수  
 문자열 함수 str.isalpha( ) 에서  str이 모두 알파벳으로 이루어져 있을 경우, True를 반환하며, 그렇지 않을 경우 False를 반환. (문장속에 공백이나 특수 문자가 들어 있을 경우,  알파벳이 아니므로, False를 반환 하게 됩니다.)


 12. startswith ("aaa") 함수
: 문자열이 "aaa"로 시작하면 True를 반환하며,  그렇지 않을 경우 False를 반환.
 (예시는 아래 13번 예시와 함께 참조)

 13.  endswith ("bbb") 함수
: 문자열이 "aaa"로 시작하면 True를 반환하며,  그렇지 않을 경우 False를 반환.

 

이어서 if 조건문 등으로 이어지는 2편 링크를 클릭해 주세요.  (작업전입니다.)

 파이썬 기초#6파이썬기초 한방에정리하기!#2편    ←  클릭!

 

반응형
반응형

 파이썬 명령어 정리#1 파이썬 "String, 상수와 변수 & 연산자이스케이프 시퀜스(Escape Sequence)

이미지를 클릭하면 확대 됩니다

1) 파이썬 String, 상수와 변수 관련 함수

명령어 기능
print Text stream을 출력한다.
input Text string을 입력한다.
upper( ) String 내의 모든 문자를 대문자로 바꾼다.
lower( ) String 내의 모든 문자를 소문자로 바꾼다.
split(‘문자’) String을 주어진 문자를 기준으로 나눈다.
str(오브젝트) 오브젝트를 String으로 만든다.
len(오브젝트) 오브젝트의 길이를 구한다.
chr (정수) 0 ≤ x 255 범위의 숫자를 문자로 변환한다.
ord (문자) 문자의 code값을 숫자로 변환한다.
bytes(오브젝트) 오브젝트를 bytes로 변환한다.
float(오브젝트) 오브젝트를 실수로 변환한다.
int(오브젝트) 오브젝트를 정수로 변환한다.
hex(오브젝트) 오브젝트를 hexa string으로 바꾼다.
bin(오브젝트) 오브젝트를 binary string으로 바꾼다.
float.hex( ) 실수를 hexa string으로 바꾼다.
float.fromhex(오브젝트) 오브젝트를 실수로 변환한다.
bin(오브젝트) 오브젝트를 binary string으로 바꾼다.
bool(오브젝트) 오브젝트를 bool 값으로 바꾼다.
complex(오브젝트) 오브젝트를 복소수로 변환한다.
abs(오브젝트) 오브젝트의 절대값을 구한다.
isdigit( ) ‘0~9’ 사이의 문자로 만들어졌는지 확인한다.
math 수학 함수관련 모듈임.
eval( )

문자 혹은 문자열이 포함된 연산식(함수)을 계산하여 출력해준다
예 1) eval(“(3*2)/2”)
   3
예 2) eval( "max([1, 2, 3, 4, 5])" )
  》 5


2) 화면 제어코드 (Escape Sequence)
 (보통 한글 자판을 이용하기 때문에,  \는  \로 표시됩니다. )

Escape Sequence 표현되는 의미
Backslash(\)       백슬래시
\' single quote(')     단따옴표
\" double quote(")   이중 따옴표
\a ASCII Bell            벨 (Alarm) 음
\b ASCII Backspace(BS)   백스페이스
\f ASCII Formfeed(FF)    한 장 넘김
\n ASCII Linefeed(LF)      개 행(New line)
\r ASCII Carriage Return(CR)  행의 처음으로 되돌아감
\t ASCII Horizontal Tab (HT)  수평 탭
\v ASCII Vertical Tab (VT)      수직 탭
\0 ASCII Null                      널 문자

 

3) 연산자 

연산자 의미 사용예시
+ 덧셈 a + b
- 뺄셈 a - b
* 곱셈 a * b
** 거듭제곱 (지수) a ** b
/ 실수형 나눗셈 (결과 값은 실수) a / b
// 정수형 나눗셈 (결과 값은 정수) a // b
<< Left Shift a << b
>> Right Shift a >> b
% 모둘로(modulo),나눗셈 나머지 연산자 a % b
& bit 단위 and 연산자 a & b
| bit 단위 or 연산자
('|' 기호는 역슬래시() 키에 있음)
a | b
^ bit 단위 exclusive or 연산자 a ^ b
~ bit 단위 inverse ~a
not True ↔ False  반전 연산자 not a
< 작다 a < b
> 크다 a > b
== 같다 a == b
!= 같지 않다 a != b
>= 크거나 같다 a >= b
<= 작거나 같다 a <= b

 

4) String 연산 방법

연산 의미 사용예시
string [x] x+1번째 문자 (0부터 시작함) string 'abcdefg'의 [2]요소는 'c' 
string [x : y] x+1번째 문자 부터 y번째 문자까지 'abcdefg'의 [2 : 5]요소는 'cde'
string[ : y] y번째 문자 이전까지 모두  'abcdefg'의 [ : 3]요소는  'abc'
string[x : ] x+1번째 문자 이후 모두 'abcdefg'의 [ 3 : ]요소는  'defg'
len(string) string의 길이 len('abcdefg')   7
string1 + string2 string1 뒤에 string2가 이어 붙여짐 'abcd'+'efg' 'abcdefg'

 

5) 비트 연산자 

연산식
x | y x와 y의 비트 단위 논리합(OR)
x & y x와 y의 비트 단위 논리곱(AND)
x ^ y x와 y의 비트 단위 배타적 논리합(EOR)
(EOR: Exclusive OR이란 x와 y중 하나는 참이고 하나는 거짓으로 두 값이 같지 않을 때,  x ^ y의 결과가 참(True)이 되는 논리) 
~x x와 비트 단위 반전 (NOT)
x >> y x를 y비트 오른쪽으로 시프트,  빈 비트에는 '0'으로 채워짐
y << x x를 y비트 왼쪽으로 시프트,  빈 비트에는 '0'으로 채워짐

 

6) 복합 대입(할당) 연산자

연산식 식의 원형 의미
x += y x = x + y x + y의 결과를 x에 대입(저장)
x -= y x = x - y  x - y의 결과를 x에 대입
x *= y x = x * y x * y의 결과를 x에 대입
x /= y x = x / y x / y의 결과를 x에 대입
x %= y x = x % y x % y의 나머지를 x에 대입
x >>= y x를 y비트 만큼 오른쪽으로 시프트 후 x에 대입
x <<= y x를 y비트 만큼 왼쪽으로 시프트 후 x에 대입

 

반응형
반응형

기초구구단  만들어 보기 GuGuDan Multiplication table (while 문, for문 각각 작성) 

 

 C언어 기초편으로 오늘은 구구단을 출력해보겠습니다. 구구단 자체는 어렵지 않으나, 이중 중첩 while 문을 익히는데 좋은 연습문제가 되기 때문에 다루어 봅니다. 
( 우선 while () 문으로 연습해보고, for문으로도 적용해 보세요)

 

문제 1 : 출력을 원하는 구구단을 입력받아 해당 구구단을 출력하세요. (구구단 한 단만 출력)

 

 

 실행결과 : 아래와 같은 결과를 만들어 보세요.

 

( 아래 포인트 내용을 보고 힌트를 얻고 생각을 정리해서 스스로 코드를 작성해보세요. 최대한 노력해본 후에 제시 답안과 비교해보세요. 
 코딩 결과를 얻으려하지 말고 연습을 통해 스스로 코드를 완성해 낼 수 있는 능력을 키우는 것이 중요합니다 )

 

포인트 :
   -  while( ) 문을 사용하여 x1~ x9까지를 반복해 주어야 해요.

   -  scanf를 통해 구하고 싶은 구구단을 정수형태로 입력받고 값계산과 출력에 반영해야 합니다. 

   -  필요한 변수의 종류와 개수를 생각합니다. 

   -  증가 되어야 할 변수가 어떤 것인지? 생각해보고 증감 연산자를 사용합니다

   -  알고리즘에 문제가 없으면,  '=== 3단 ==='  ,  '줄 바꿈' 등 출력 결과를 꾸며주며 마무리 하세요.

 

주요 함수(형식) : 

   - 필수 라이브러리 :  #include <stdio.h>

   - 주요 함수 : 

       - printf(" ..... " ) 또는  printf(" ... %d... ", num )   

       - scanf(" %d ", &num)  ,    

       - while ( xxx < yyy )  {  .... ...   }

 

Code (답안 예시) :    

#include <stdio.h>

int main(void)
{
    int xdan, dan=1;
    printf("몇 단을 출력할까요? : ");
    scanf("%d", &xdan);
    printf("\n=== %d단 ===\n",xdan);
    while(dan<10)
    {
        printf("%d x %d = %2d\n", xdan, dan, xdan*dan);
        dan++;
    }    
    return 0;
}

 

 Code download :   

Hole99Dan_P156.zip
0.00MB

 

 

 문제 2 : 구구단 전체 출력하기 ,  2단부터 9단까지 이중 while ( ) 문을 이용해서 구구단을 출력 해보세요. 

 

 실행결과  : 아래와 같은 결과를 만들어 보세요.

 포인트 : 
   -  반복문 속에 반복문이 존재하는 형태로,  while( ) 문을 이중으로 사용하면 됩니다.
   -  속에 있는 while( )문으로는 x1~ x9까지를 반복해 주며,  밖에 있는 while( )문은 2단~9단을 표시하도록 처리해주세요.

   -  증가 연산자가 두 개가 필요한데, 반복문의 어디 어디에 넣어야 할지? 생각해보세요.

   -  알고리즘에 문제가 없으면,  '=== 2단 ==='  ,  '줄 바꿈' 등 출력 결과를 꾸며주며 마무리 하세요.

 

 주요 함수(형식) : 

   - 필수 라이브러리 :  #include <stdio.h>

   - 주요 함수 : 

       - printf(" ..... " ) 또는  printf(" ... %d... ", num )   

       - scanf(" %d ", &num)  ,    

       - while ( xxx < yyy )  {  .... ...   }

 

 Code (답안 예시) :    

#include <stdio.h>

int main(void)
{
    int dan=1, xdan=2;

    printf("구구단 출력\n");
    printf("\n=============\n");
    while(xdan<10)
    {
        while(dan<10) 
        {
            printf("%d x %d = %2d\n", xdan, dan, xdan*dan);
            dan++;
        }
        printf("\n==========\n");
        dan=1;
        xdan++;
    }    
    return 0;
}

 

 Code download :   

Hole99Dan_P156_2to9.zip
0.00MB

 

 문제 3 : For 문을 사용하여 구구단을 완성하되,  아래와 같은 형태로 출력 되도록 해보세요.

 

 

 실행결과 : 아래와 같은 결과를 만들어 보세요.

 포인트 : 
   -  먼저 위의 while ( ) 반복문을 참고하여 2단, 3단, 순으로 출력해본 후,  가로로 한 줄씩 출력이 될 수 있도록 생각해 보세요.

   -  첫 출 2단  2 x 1 =2  | ....    9 x 1 = 9 까지 출력된 후에는 printf("\n");  줄바꿈을 적용하면 됩니다.  

자신이 얻은 결과와 아래 예시 답안과 비교해 보세요. 

 

 Code (답안 예시) :    

#include <stdio.h>

int main(void)
{
    int i,j;
    printf(" ==================================================== 구구단 ===================================================\n");
    for (i=1; i<10; i++) 
    {
        for (j=2; j<10; j++)
        {
            printf(" %d X %d = %2d  |", j, i, i*j);
        }
        printf("\n");
    }
    printf(" ===============================================================================================================");
}

 

 Code download :   

TwoToNineForVer.zip
0.00MB

 

반응형