본문 바로가기

1. Python

3/3(금) IT K-DT (2일차) / 1.파이썬의개요~2.파이썬의출력

 

 

 

 

1. 파이썬의 개요

 

1991년에 발표된 인터프리터 방식의 프로그래밍 언어.

파이썬의 강력한 라이브러리와 풍부한 생태계를 통해, 데이터를 수집하고 분석하며 시각화할 수 있음.

 

데이터 분석 분야에서 파이썬의 사용이 널리 퍼진 이유 중 하나는, 비교적 쉽고 간편한 사용이 가능하기 때문.

만약 웹 프레임워크와 같은 라이브러리와 함께 사용될 경우,

데이터의 수집/처리 결과를 웹 애플리케이션에 표시하는 것도 가능해짐.

따라서 데이터 분석 작업에서 발생하는 오류의 신속한 수정이 가능.

파이썬의 환경에서는 코드와 문서를 함께 작성하며, 데이터 분석 작업 간 모든 단계의 확인이 용이함.

→ 데이터 분석가들이 데이터 분석 작업을 더욱 효율적으로 수행할 수 있는 이유임.

파이썬은 다른 언어와의 호환성이 뛰어남.

→ 데이터 분석 작업에서 다른 프로그래밍 언어와의 통합 또한 매우 용이함.

예를 들어, 파이썬과 R을 함께 사용하여 데이터 분석 작업을 수행할 수 있음.

 

파이썬은 다양한 분야에서 사용되고 있는 프로그래밍 언어임.

데이터 분석 분야에서 파이썬의 사용이 늘어나고 있는 이유 중 하나는,

많은 기업이 파이썬을 사용하고 있기 때문임.

또한 인공지능, 머신러닝, 딥러닝 등과 같은 분야에서도 파이썬을 적용하는 경우가 많아지고 있음.

 

이러한 이유로, 파이썬을 배우고 데이터 분석 작업을 수행하는 것은 매우 유용하며,

데이터 분석 분야에서 일할 때는 필수적인 기술임.

 

(출처: https://namu.wiki/w/Python?from=%ED%8C%8C%EC%9D%B4%EC%8D%AC) 

 

1-1. 파이썬의 특징

1. 학습용 프로그래밍 언어로 시작함.

2. 순수한 객체 지향 프로그램.

3. 반복 가능한 개체 (iterable)의 사용.

    이 객체는 '집합', '문자열', '리스트', '튜플', '딕셔너리', 그리고 '함수'까지도 반복이 가능하며,

    for문 등에서 사용할 수 있게 해줌. 

 

1-2. 파이썬의 장점

1. 오픈소스 기반 → 많은 사람들이 만들어 둔 라이브러리의 이용이 쉬움.
2. 안정적이고 빠른 개발이 가능
3. 문법이 통일되어있어 배우기가 쉬움 → 다양한 개발자들의 참여가 가능

    → 개발한 프로그램에 대한 피드백이 매우 용이
4. 과학 및 공학 친화성이 높아 패키지를 통해 다양한 분야에서 활용이 가능 → 거대한 생태계의 구축이 가능.

   예)

   웹사이트 서버 구현 : Django, Flask 프레임워크

   기계학습 알고리즘 :  scikit-learn, TensorFlow, PyTorch 라이브러리

   얼굴 인식 : OpenCV 라이브러리

   게임 제작 : Pygame 라이브러리

   비주얼 노벨 : Ren'py(렌파이) 툴

   이 외에도 업무 시간을 단축해 주는 프로그램을 쉽게 만들 수 있음.

   (엑셀 / 파일 처리 / 웹 크롤링 / 3D 모델링의 자동화)

 

1-3. 파이썬의 단점

1. 최초에 개발용이 아닌 교육용으로 만들어진 언어이며 '인터프리터 방식' 이라 속도가 느림.
2. 일반 사용자에게 배포를 하는 과정이 덜 발달되어있고 복잡함.

1-4. 가상환경

파이썬 가상환경(Virtual Environment)은

Python 버전과 패키지를 다른 프로젝트와 완전히 분리해서 사용이 가능하게 하는,

'별도의 환경'을 구성할 수 있는 도구임.

→ 한 컴퓨터에서 여러 개의 프로젝트를 동시에 진행하면서,

각각의 프로젝트에 필요한 라이브러리 버전의 관리가 가능.
(만약, A프로젝트에서 파이썬 3.6버전, B프로젝트에서 파이썬 3.9버전을 사용하는 경우,

A에서 동작하는 라이브러리가 B에서 동작하지 않을 수 있으므로 가상환경을 사용함.)


가상환경을 사용하면 프로젝트마다 필요한 라이브러리와 그 버전을 별도로 관리할 수 있으며, 

이는 라이브러리 간의 의존성이나 버전이 업그레이드되는 경우에도 유용하게 사용할 수 있음.

 

 

가상환경 관리자

파이썬의 표준 라이브러리인 venv 모듈을 사용하거나, conda 등의 외부 라이브러리를 사용할 수 있음.

(교육 간에서는 venv 모듈을 사용할 예정.)

 

    1. venv

    Python 3.3부터 추가된 가상 환경 관리 내장 모듈.

    내장 모듈이기에 가상환경 경로를 의미하는 ' python -m venv ' 를 cmd에 입력 시 간편하게 사용이 가능.

    가상환경 설치 후 < 가상 환경 경로 >/bin/activate 을 실행하면 가상환경이 실행됨.

 

    2. virtualenv
    Python 가상 환경 관리자로, 패키지를 자유롭게 설치할 수 있는 가상 환경을 생성.

 

    3. conda

    별도로 Anaconda나 Miniconda를 설치하여 사용할 수 있음. 무겁고 버그가 많아 잘 사용하지 않음.

 


가상환경의 생성 및 실행
python -m venv myvenv
→ myvenv\Scripts\activate (Scripts폴더 內 activate.bat로 가상환경을 실행할 예정.)
→ 'myvenv'라는 가상환경 생성

cd C:\yjcho\python\day1\myvenv\Scripts 입력
(추후 교육 간 예제는 myvenv의 project폴더 내부 가상환경에서 진행할 예정.)



실행 시 activate입력


가상환경에서의 라이브러리 설치

생성된 가상환경에서 ' python -m pip ~ ' 를 이용해 필요한 라이브러리를 설치할 수 있음.


pip
파이썬 패키지 관리자(Package Manager)로, pip를 사용하여 다른 사람이 만든 파이썬 패키지를 설치/업그레이드/삭제가 가능.
3.4버전 이후에는 자동으로 내장.

간단하게 명령어 하나로 패키지를 설치할 수 있으며, 패키지의 의존성도 자동으로 처리해줌.
설치된 패키지들의 버전을 확인하거나, 업그레이드 할 수도 있음.

예를 들어, requests 패키지를 설치하려면 터미널에서 pip install requests 명령어를 입력.
이렇게 하면 requests 패키지와 해당 패키지가 의존하는 다른 패키지들이 자동으로 설치됨.

 

pip list : pip의 버전 및 설치 완료된 패키지의 확인.
pip install '패키지이름'(== '특정버전') : (특정버전의) 라이브러리를 설치.

pip uninstall '패키지이름'(== '특정버전') : (특정버전의) 라이브러리를 제거.

예) numpy 라이브러리의 버전 1.20.3을 설치하는 예제


pip install numpy == 1.20.3

pip install -upgrade pip : pip 버전의 업그레이드.

pip show '패키지이름' : 설치가 완료된 패키지의 세부 내용 확인.

 

2. Python의 출력

2-1. print()

 

매개변수로 지정된 데이터를 출력하고 줄을 변경. 내장함수임.

 


내장 함수(Built-in function)
파이썬에서 기본적으로 제공되는 함수. 추가적인 모듈의 로드나 설치 없이 바로 자연스럽게 사용할 수 있음.
이러한 내장 함수는 파이썬 인터프리터에 미리 로드되어 있으며, 언제든지 사용할 수 있음.

 

컴퓨터는 기본적으로 숫자 연산 → 문자를 인식할 수 없음.

이러한 부분으로 문자는 ''(따옴표)를 이용해서 표현함.

실무에서 프로그램이 정상적으로 출력되는지 확인되는 용도로 쓰며, 일반적으로 자주 사용되지는 않음.

 


주석문
프로그램을 작성할 시 설명/메모에 사용함. 프로그램에 직접적인 영향을 주지 않음.
불필요한 주석이 장황해져서 코드가 지저분해져 싫어하는 사람도 있기 때문에 최대한 간결하게 사용하는 것을 추천.

한줄 주석문: 샵(#)을 맨 앞에 배치.
예) # 한 줄 주석문

여러 줄 주석문: 홑따옴표 3개(''')를 주석으로 사용할 문장의 앞과 뒤에 각각 배치.
예)
'''
여기는 여러 줄을 주석으로 처리 합니다.
따라서 프로그램에 영향을 주지 않습니다.
''

 

2-2. print()의 활용


print(10 + 5)

print(10 - 5)
print(10 * 5)
print(10 / 5)
print(10 % 3) # 나눗셈의 나머지 값을 출력.
------------------------------------------------------------

15
5
50
2.0
1


print('Hello', 'Python') # 문자열간의 연결
print('Hello', 'Python', 'Hi', 'Python')
print('Hello', end='')  # print함수 안에 기능을 부여 할 수 있음.

 end는 print출력 후 어떻게 처리할지에 대한 옵션 (end=''는 다음 줄에 대한 출력값이 Hello 바로 뒤에 붙게해줌)
print('Python')
print('Hello', end=' 💕')

 # 따옴표 내 띄어쓰기의 차이. 따옴표 안에 이모지(Windows + .) 나 특수문자를 입력할 수도 있음
print('Python')
------------------------------------------------------------
Hello Python
Hello Python Hi Python
HelloPython
Hello 💕Python

 

2-3. 출력 서식 지정

 

%d

정수를 출력할 때 사용.
%f

실수를 출력할 때 사용.

%s

문자열을 출력할 때 사용.

 


print('정수 : 100')
print('정수 :', 100)
print('정수 : %d' %100)
print(f'정수 : {100}') # f : format이라는 의미. 중괄호로 묶어야 하며, '100'의 자리에 변수가 들어갈 때 사용됨.
print('정수 : %d' %100.5) 

# 실수를 입력했을 때, 오류가 생기지는 않지만 뒤의 소수점들이 모두 절사됨. 문자열을 입력하면 당연히 오류가 발생
------------------------------------------------------------
정수 : 100
정수 : 100
정수 : 100
정수 : 100
정수 : 100

서식을 제외한 문자는 입력한 그대로 출력이 됨.
서식을 지정해서 출력할 데이터가 2개 이상인 경우는 소괄호로 데이터를 묶어야 함.


print('실수 : %f' %100.5) #파이썬의 기본적인 실수타입은 소수점 6자리까지 출력

print('문자열: %s' %'Python')
print('문자열: %s' % 100) # 100은 문자열로 출력

print('5 + 3 = 8')
print('%d + %d = %d' % (5,3,8)) # 서식을 지정해서 출력할 데이터가 2개 이상인 경우는 소괄호로 데이터를 묶어야 함

print('%5d' %100) # 5d = 5자리를 확보한 후에 100을 입력 (실제로는 00100)

print('%5d' %10000)
print('%5d' %100000000) # 5d를 넘어가는 자리수를 입력하면 입력된 자리수가 그대로 출력
print('%05d' %100) #첫째 줄의 00100이 그대로 출력

print('%6.2f' %123.45) # 6 : 총 자리수(점까지 모두 포함)를 의미 # .2 : 소수점의 자리수를 의미
print('%6.2f' %123.4567) # 소수점 셋째 자리에서 반올림 처리 됨 

(컴퓨터 내부적으로 소수점에 대한 계산이 명확하지 않은 경우가 있음 ex. 123.455는 123.45가 됨)
print('%6.2f' %123.4) # 적은 소수점 자리수를 입력하면, 빈 자리는 0으로 채워짐

print('%5s' % 'ABC') # 5자리의 문자열을 출력하라고 되어있으므로 ABC의 앞의 두 자리는 비어있게 됨

print('%d / %d = %d' % (5,3,5/3))
print('%d / %d = %f' % (5,3,5/3))
print('%d / %d = %4.2f' % (5,3,5/3)) # 4자리와 소수점 2자리로 출력

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

실수 : 100.500000


문자열: Python
문자열: 100


5 + 3 = 8
5 + 3 = 8


  100
10000
100000000
00100


123.45
123.46
123.40


  ABC



5 / 3 = 1
5 / 3 = 1.666667
5 / 3 = 1.67


 

2-4. format 함수, 출력 인덱스 사용


인덱스 : 0부터 '순서대로' 시작되는 정수


print('{ } { }'.format('김사과', '반하나')) # 김사과가 0번, 반하나가 1번

print('{0} {1}'.format('김사과', '반하나'))
print('{1} {0}'.format('김사과', '반하나'))

print('{0:3s}님은 {1:03d}살 입니다'.format('김사과', 20))
# 3s : 3글자의 문자열(string)  # 03d : 빈 칸을 0으로 채운 3자리의 정수(digit)

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

김사과 반하나
김사과 반하나
반하나 김사과

김사과님은 020살 입니다


TIP

 

* 웹 라이브러리를 이용할 때, AS까지 고려하여 이용하는 것이 좋음. (오픈소스가 아닌경우 심각한 상황을 초래할 수 있음)

* 파이참 등 파이썬에 적합한 에디터들도 있지만, 공부용으로는 적합하지 않음.

* 슬랙에 올라온 대괄호 주제 중심으로 인터넷에서 추가적으로 공부해서 블로깅하는 것을 추천.

* 구글 코랩의 확장명 ipynb의 의미 : 
interactive python notebook으로, 코랩, 쥬피터노트북 등의 특정한 프로그램에서 동작하게 하는 확장명. VS code에서는 동작하지 않음.

* 구글 코랩은 리눅스 기반이라 제목에 특수문자, 한글, 띄어쓰기 등에 제약이 없음. 충돌 가능성이 없음.

* 프로그램은 머리,눈으로 읽어서 생각하는 것보다 직접 손으로 타이핑해보는것이 제일 효과가 좋음.