[목차]
1. 라이브세션 <파이썬> 인사이트 정리
1. 라이브세션 <Python> 인사이트 정리
1.1. SQL과 Python
- 데이터베이스에 접근해 그것을 조회하고 조작하기 위해선 프로그래밍언어가 필요할 것이다. 그 중 유명하고, 흔히 쓰이는 언어가 SQL과 Python이라고 할 수 있다.
- SQL : 데이터 베이스에 접근하기위한 쿼리 언어 즉, 데이터베이스에 질문하기 위한 언어이다.
- Python : 데이터분석, 외에도 머신러닝, 통계분석, 고급 시각화 툴 등 다양한 활용을 할 수 있는 프로그래밍 언어이다.
- SQL이 질문을 위한 경직된 언어인 반면, Python은 데이터 베이스 접근 뿐만 아닌 다양한 활용이 가능한 언어라는 점에서 Python의 범용성과 자유도가 높다고 할 수 있다. 그러나 Python은 SQL과 같은 약어(INSERT, DELETE, SELECT, .....)가 없기에 직접 만들거나, 다른 라이브러리를 통해 가져와야 한다는 점에서 쉬운 접근과 대비되는 숙련이 어려워 보이는[어디부터 손을 대야할 지 막막한]점이 있다.
- 데이터 분석을 위한 목적으로 이 언어들을 사용하고자 한다면, SQL을 통한 기본적인 데이터 조작 및 추출을 하고 그 결과를 Python으로 심화 분석, 시각화작업을 수행하는 방식으로 양자를 활용하는 것이 좋다.
[최종적으로 두 언어를 다 숙련하는 것이 바람직하고, 상호간 보완을 통해 업무를 수행할 수 있어야 한다.]
1.2. Python의 사용
- 프로그래밍은 컴퓨터에게 특정 작업을 수행하게 지시하는 과정이다. Python은 그 운영 프로그램을 통해 입력된 사용자의 언어를 여러 도구들을 통해 변환하여 운영체제에 작업을 지시하는 언어이다. 이때 사용하는 도구들은 "Jupytet Notebook"[코드 실행, 시각화, 출력문자변화,등등], "Google Colaboratory"[구글 제공 주피터노트], "VSCode"[머신러닝 및 개발에 자주 사용, 오픈소스 코드 에디터], "Pycharm"[파이썬 전용 개발환경을 통해 강력한 디버깅과 자동완성기능], 등이 있다.
- 파이썬의 다양한 툴을 활용해 최종적으로 "데이터 분석", :인공지능 모델링", "시각화 및 데시보드", "앱 개발 및 업무자동화, 매크로"등의 일들을 수행할 수 있다.
1.3. Python 프로그래밍 시 유의사항 [초심자]
- 데이터 분석과 관련하여 Python 입문자가 기초 개념과 자료구조를 배우고 프로그래밍을 시작할 시 흔히 범하게 되는 실수들이 있다! 항상 유의하여 프로그램밍을 시도해보자!
a. print() 사용 시 유의사항
- print는 소괄호 안의 대상을 출력해주는 명령어이다. 출력하는 대상은 문자형, 숫자형, bool자료형[참, 거짓], 등등 다양한 대상이 들어갈 수 있다. 그러나... 출력하고자 하는 대상의 자료형태를 통일하여 명령어를 사용해야한다!
"print(문자형 데이터 + 숫자형 데이터)" # 에러 코드를 출력하고자 하는건가?
b. 인덱싱을 할 시 유의사항
- 컴퓨터는 숫자를 0부터 카운팅한다. [0과 1로 소통하는 신비로운 친구!]
"list_A = [숫자1, 숫자2, 숫자3]"
위와 같이 가정할 때, 리스트의 1번째 대상을 출력하고자 한다면 다음과 같이 작성해야 한다!
"print(list_A[0])" # 숫자1
c. 반복문 사용 시 유의사항
- 반복문을 통해 1부터 10까지 출력하고자 할 때, for 문과 rage()를 사용할 것이다. 이 때 다음의 상황이 벌어질 수 있다.
for i in range(1, 10):
print(i) # 1 2 3 4 5 6 7 8 9
- "1.3. - b."에서 언급했듯이 컴퓨터는 숫자를 0부터 카운팅 한다. 시작 숫자는 1이지만 10번째 숫자는 9이다. 그렇기에 다음과 같이 숫자를 1 더해서 작성한다!
for I in range(1, 10+1): for I in range(1, 11):
print(i) print(i)
d. 반환값 vs 출력값
- 반환값은 컴퓨터가 연산을 수행하여 얻는 값이고, 출력값은 출력하는 대상을 출력하여 표시되는 값이다. 즉, 프로그래머의 입장에서 출력값은 실행 결과로 확인할 수 있지만, 반환값은 별도의 출력명령을 프로그래밍 하지 않는 이상 볼 수 없다.
print(출력하고자 하는 값) # 출력하고자 하는 값 즉, 출력값!
return(코요태) # 반환값! 컴퓨터만 알고있는 비밀이다
e. if 조건문
- if 조건문 외에도 " : " 와 같은 쌍점이 쓰이는 경우가 있다. 쌍점이 쓰이는 명령문의 내용부분에 들여쓰기[띄어쓰기!]를 사용하지 않으면 조건문은 그것을 조건문의 내용으로 혹은 쌍점이 쓰이는 명령문의 내용으로 인식하지 못한다! 꼭, " : "와 같은 쌍점엔 들여쓰기로 내용을 구분해주자
f. "while"반복문 or try/except 주의사항
- while반복문 혹은 예외사항이 있음에도 except가 없는 try문은 컴퓨터가 자신과의 싸움을 유도하는 공포스러운 에러문구(exceed~~~~)를 띄워준다.
- 절대로! 반드시! while반복문의 끝을 설정[ex. i = 1 while i < 10: 들여쓰기 i +=1 ]하고[for문의 경우 범위가 정해져서 크게 문제는 되지 않음.] try문은 구체적인 except를 설정해 주어야 한다. [방치시 컴퓨터가 실시간으로 호흡곤란을 겪는 모습을 볼 수 있고 심폐소생(재부팅)을 해야할 수 도 있다.]
- 만일 실수가 발생하여 에러 문구가 뜰 경우 즉시 "cntr + c" 혹은 정지버튼을 눌러 대처해야 한다.
g. 변수명 사용시 유의사항
- 항상 변수명을 사용할 땐 중첩되지 않는 변수명을 사용한다!
- Pycharm에선 코드 실행 시 코드들이 저장되지 않으나 주피터 노트의 경우 매 코드들이 실행될 때마다 저장된다! 그래서 이전에 사용한 변수명1이 실행 후 메모리에 저장된 상황에서 변수명1이 들어간 줄을 지운 뒤 다시 변수명1에 새로운 값을 지정 후 실행 시 이전 저장된 변수명1의 값이 출력되는 오류가 발생한다. 하지만 이전 저장 변수명1 코드가 어디있는지 몰라 수정을 못하는 상황이 발생한다.[이럴 땐 초기화하고 처음부터 다 작성해야 한다;;]
- 그렇기에 항상 변수명을 달리 지정하거나 중복되지 않는 상황에서 변수명을 중첩해 사용한다.
h. 지역변수 vs 전역변수
- 지역변수는 특정한 명령문 내에서 적용되는 변수와 그 값이다.
- 전역변수는 코드 전체에 적용되는 변수와 그 값이다.
- 앞서 변수명을 중첩하지 않거나, 중첩 및 들여쓰기의 연장선이다. 즉, 지역변수의 값을 별도로 지정하여, 전역변수와 구분하여 코드를 작성한다. 이때, 들여쓰기를 실수하거나 혹은 명령문의 지역변수를 별도로 지정하지 않아 전역변수가 출력값에 적용되는 문제가 발생하는 실수를 조심하자!