23.03.17 ~ 23.03.23 동안 부트캠프에서 배웠던 내용을 정리한 학습일지입니다.
5주차에는 Python을 집중적으로 배웠습니다.
Python의 경우 내용이 너무 많아서 정리하는데 어려움을 느끼고 있는데요... ㅠ
그래서 학습일지에는 간략하게 기본 개념에 대한 내용만 적고
Python 폴더에 실습 내용을 따로 작성할까 합니다!
Python 기초 문법 노션 링크: https://solar-geology-c0d.notion.site/Python-0c245c04717e4e4e8d76941411b0222f
Python 라이브러리 노션 링크 : https://solar-geology-c0d.notion.site/Python-d791f4cf35944455ba505051641d306a
(+ 노션 라이브러리 부분의 경우 내용 추가 중에 있습니다.
실강이나 인강으로 듣는 내용은 많은데 제가 다 소화하지 못한 것과 내용 정리를 같이 하니까 시간이 배로 드네요😣
내용을 다 추가하고 나면 이 부분은 지우도록 하겠습니다!)
(+ 추가 완료)
부트캠프 5주차 - 2023.03.17 ~ 2023.03.23 "데이터 분석을 위한 파이썬 프로그래밍 활용"
1. Python특징
💡 Python 특징
- Python에서는 변수에 값을 주면, 자동으로 data type이 결정됨.
- Python 들여쓰기를 이용해서 code block을 구분함.
- Python은 문자열을 굉장히 편하게 사용할 수 있음. (문자열(str)이라는 data type이 따로 존재)
- Python은 line by line으로 실행이 가능함.
2. Data Type
💡 Data Type: 프로그래밍 언어가 이해하는 사용자(프로그래머)의 데이터의 사용 의도를 정의한 것
- Data Type은 우리가 사용하는 데이터를 컴퓨터가 이해할 수 있게 규격화한 것.
- 컴퓨터는 정의된 데이터 타입을 통해서 해당 수치값이 어떤 의미인지 이해하고 계산할 수 있게 됨.
<종류>
- int: 정수
- float: 실수 (소수)
- str: 문자열
- list: 자유롭게 변경이 가능한 여러 개의 데이터 묶음
- append() : 새로운 아이템 추가
- clear(): 모든 아이템 삭제
- pop(index): 인덱스를 통해 아이템을 제거 후, 그 아이템 값을 반환
- remove(value): 값을 통해 아이템 제거
- del(): 인덱스나 슬라이스로 아이템 제거; 여러 개의 요소를 한 번에 지울 수 있음
- tuple: 생성 후에 변경이 불가능한 여러 개의 데이터 묶음
- set: 집합
- dict: key - value store 방식을 가지고 자료를 저장하는 구조
3. IF문
💡 IF: 조건에 따라 다른 명령을 수행하는 statement (조건문, conditional statement)
# if statement syntax example
if condition:
<statement>
<statement>
...
elif condition:
<statement>
...
else:
<statement>
- python에서는 조건문을 if statement로 다룸.
- 프로그램의 규칙은 모든 조건에 따른 분기에 따라 결정됨.
[문제] : 날씨에 따라 롱패딩을 입을지 코트를 입을지 고민이다. 기온이 5도 이상이면 코트를, 그 아래이면 패딩을 입는다고 출력하는 if문 생성
current_temp = 10
if current_temp >= 5:
print('코트를 입어야겠다')
else:
print('패딩을 입자')
'''
코트를 입어야겠다
'''
4. for, While
💡 for, While: 조건에 따라 반복 작업을 수행해야 할 때 사용하는 statement (반복문, iteration)
python에서는 for, while statement로 반복 수행을 다룸.
# while statement syntax example
while condition:
<statement>
<statement>
...
- while statement는 조건에 따른 반복 수행을 진행.
- 조건에 만족하는 동안 명령을 수행.
- 특정 횟수를 반복하는 게 아닌, 조건의 만족 여부에 따라 반복을 수행.
[문제]: 1부터 10까지 더하면서 더한 값을 출력하는데 더한 값이 10보다 크면 빠져나오기
sum = 0
i = 1
while sum < 10:
sum += i
i += 1
print(sum)
'''
1
3
6
10
'''
[문제 2] : while true와 input 함수를 이용해서 코드 실행 종료 버튼 생성
while True:
Input = input('종료하려면 q를 입력해주세요')
if Input == 'q':
print('종료합니다.')
break
else:
print(f'{Input}은 종료코드가 아닙니다. 다시 입력하세요')
pass
# for statement syntax example
for iterator in iterable_objet:
<statement>
<statement>
...
- for statement는 횟수에 따른 반복 수행을 진행.
- 특정 횟수를 지정할 수도 있고, list 같은 경우 sequence를 처음부터 끝까지 반복하게 할 수도 있음.
- 주어진 여러 개의 데이터를 순서대로 다룰 때 많이 사용.
[문제 1]: 1부터 10까지 더하면서 더한 값을 출력하는데 더한 값이 10보다 크면 빠져나오기
sum = 0
for i in range(1,11):
sum += i
print(f'{i}번째까지의 숫자 합은 {sum}입니다')
print('---------')
if sum > 10:
print(f'{i}번째까지의 숫자 합은 {sum}입니다. 10보다 커 종료합니다.')
break
'''
1번째까지의 숫자 합은 1입니다
---------
2번째까지의 숫자 합은 3입니다
---------
3번째까지의 숫자 합은 6입니다
---------
4번째까지의 숫자 합은 10입니다
---------
5번째까지의 숫자 합은 15입니다
---------
5번째까지의 숫자 합은 15입니다. 10보다 커 종료합니다.
'''
[문제 2]: for문을 사용해 구구단 2단부터 9단까지 출력
for i in range(2,10):
for j in range(1,10):
result = i * j
print(f'{i} x {j} = {result}')
print('-----')
'''
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
-----
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
...
9 x 7 = 63
9 x 8 = 72
9 x 9 = 81
-----
'''
5. Function
💡 Function: 한 가지의 기능을 하는 코드 묶음. input을 받아서 처리하고 output을 돌려주는 코드
- 함수(function)는 기능을 의미.
- 함수의 input을 parameter(또는 argument)라고 함.
- 함수는 input을 받아서 주어진 기능대로 처리한 뒤, output을 return 함.
- 정의한 함수를 사용하는 것을 function call이라고 함.
# function definition syntax example
def function(a, b):
something = ...
<statement>
<statement>
...
return something
result = function(3, 5)
- def <function_name> (<parameter1>, <parameter2>, …)의 형태로 함수 prototype을 지정.
- 함수를 호출하면 정의한 code block내의 코드를 실행
- 함수의 input인 parameter에 어떤 값이 들어오고, 어떤 결과를 return 할지 정해야 함.
- 함수를 사용하면 코드를 구조화하기 쉬움.
- 코드의 구조화가 잘되어 있으면, 가독성도 높고 유지/보수하기 편함.
[문제 1] : 1~10까지 범위에서 홀수만 담는 리스트를 만드는 함수 생성
def odd_list(x):
l = list()
for i in x:
if i % 2 != 0:
l.append(i)
return l
x = range(1,11)
odd_list(x)
'''
[1, 3, 5, 7, 9]
'''
[문제 2]: 입력값이 1을 더한 값을 반환하는 함수 a와 입력값을 두배로 곱한 값을 반환하는 함수 b를 만들고 함수 a, b를 사용해 입력값에 1을 더하고 두배로 곱한 값을 반환하는 함수 c 생성
def function_a(x):
return x + 1
def function_b(x):
return x * 2
def function_c(x):
a = function_a(x)
b = function_b(a)
return b
6. 파일 읽기
# filein/fileout example
with open('data/a.txt', 'r', encoding = 'utf-8') as f:
data = f.readlines()
- 파이썬에서는 with open() 함수를 통해서 텍스트 파일을 쉽게 불러올 수 있음
- with open() 함수를 사용하는 경우 file close()를 따로 명시 안 해도 됨. 자동으로 열고 닫음.
- ‘r’, ‘w’, ‘a’ 등의 mode를 바꿔서 파일을 다른 옵션으로 열 수 있음
- r read) : 읽기 모드
- w (write) : 쓰기 모드. 여는 순간 기존 내용이 날아감
- a(append) : 추가 모드. 앞에 있는 내용을 수정하지 않고, 뒤에 내용 추가하는 기능
- 다른 타입의 파일을 열기 위해선 다른 라이브러리들이 필요
- e.g png, jpg 파일을 열기 위해 PIL, opency 라이브러리 사용
- e.g pk, pkl 파일을 열기 위해 pikle 라이브러리 사용 (파일 타입이 binary라서, ‘rb’를 써야 함)
- e.g csv, excel 파일을 열기 위해 pandas, csv, openpyxl 라이브러리 사용
with 함수를 이용해서 파일 생성, 읽기, 내용 추가하기
#with 함수를 이용해서 파일 생성, 내용 입력하기
with open('new_file.csv', 'w', encoding= 'utf-8') as f:
f.write('Life is too short, you need python')
#내용 여러개 입력하기
with open('new_file.csv', 'w', encoding= 'utf-8') as f:
for i in range(1,11):
f.write(f'{i}번째 줄입니다.')
----
#파일 읽기
with open('new_file.csv', 'r', encoding= 'utf-8') as f:
print(f.read())
#파일에 내용 추가하기
with open('city_temp.csv', 'a', encoding= 'utf-8') as f:
f.write(city + ' ' + temp + '\n')
+ 기본 개념에 해당하는 내용을 위주로 정리했습니다
부트캠프를 신청한 이유 중 하나가 파이썬 프로젝트를 진행하는 건데
다음 주면 파이썬 EDA 프로젝트의 OT가 있습니다...!
벌써 한 달이나 됐다니 시간이 정말 빠르네요 ㅎㅎ
아직까지 한 번도 지각과 결석을 하지 않은 제 자신에 박수를 보내며
남은 시간도 열심히 불태워 보겠습니다🔥🔥
'데이터 분석 > 데이터 분석 부트캠프' 카테고리의 다른 글
[패스트캠퍼스] 데이터 분석 부트캠프 8기 9주차 학습일지 (2) | 2023.04.20 |
---|---|
[패스트캠퍼스] 데이터 분석 부트캠프 8기 6주차 학습일지 (0) | 2023.03.30 |
[패스트캠퍼스] 데이터 분석 부트캠프 8기 4주차 학습일지 (0) | 2023.03.16 |
[패스트캠퍼스] 데이터 분석 부트캠프 8기 3주차 학습일지 (0) | 2023.03.09 |
[패스트캠퍼스] 데이터 분석 부트캠프 8기 2주차 학습일지 (2) | 2023.03.02 |