일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 학습일지
- 데이터분석취업
- mysql
- 패스트캠퍼스데이터분석부트캠프
- sql강의
- 부트캠프
- 코테문제풀이
- K디지털기초역량훈련
- bigquery
- Programmers
- 데이터분석
- 국비지원취업
- 코딩연습
- Python
- qgis
- 코딩테스트
- 국비지원
- shp
- 데이터분석부트캠프
- 프로그래머스
- 데이터분석가
- WSL
- 패스트캠퍼스기자단
- 패스트캠퍼스
- 패스트캠퍼스부트캠프
- 국비지원교육
- SQL
- 코딩테스트문제풀이
- 아나콘다
- 내일배움카드
- Today
- Total
데이터 리터러시를 위한 발자취
[부트캠프] 데이터분석 학습일지 3주차 본문
데이터분석 부트캠프 학습일지 3주 차입니다.
본격적으로 시작된 Python 강의는 프로젝트를 포함하여 7월 말까지 진행될 예정입니다.
짧은 시간 많은 것을 다루는 만큼 속도도 엑셀 강의보단 빠르게 이뤄진 편이었는데요.
개념마다 연습문제 풀이가 있어서 이해하는데 많은 도움이 되는 것 같습니다.
이번주부터 학습일지 작성 양식도 다르게 접근하여 주요 콘텐츠 별로 정리하려고 합니다.
# 부트캠프 3주차
1. 리스트와 튜플 사용하기
2. 시퀀스 자료형 활용하기
3. 인덱스 사용/삭제하기
4. 딕셔너리 사용하기
5. if 조건문 이해하기
6. for & While 반복문 이해하기
7. 기타 함수 사용하기
8. 파일 읽고 쓰기
1. 리스트(list)와 튜플(tuple) 이해하기
- 리스트는 안에 저장된 요소를 변경, 추가, 삭제 가능
- 문자열, 정수, 실수, 불 등 모든 자료형을 저장할 수 있으며, 자료형을 섞어서 저장해도 됨
- 리스트 = [], list()를 이용하여 생성 - 튜플은 변경, 추가, 삭제가 불가능(읽기 전용 리스트임!)
- 튜플 사용 시, ()나 괄호[] 없이 사용하면 튜플로 설정됨 - 튜플이 리스트보다 처리 속도가 빠름
- 튜플을 만든 상태에서 요소를 변경하면 에러가 발생
# 리스트 만들기
a = [1,2,3,4,5]
print(a)
b = list()
print(b)
# 튜플 만들기
c = (38,21,53,62,19)
print(c)
d = 38,21,53,62,19
print(d)
2. 시퀀스 자료형 활용하기
- list, tuple, range, 문자열 공통점 : 연속적임
- 시퀀스 객체에 in 연산자 : 값이 있으면 True, 없으면 False
- 시퀀스 객체에 not in 연산자 : 값이 없으면 True, 있으면 False
# in 연산자 연습하기
a = [0, 10, 20, 30, 40, 50, 60, 70, 80,90]
print(30 in a)
print(100 in a)
# not in 연산자 연습하기
print(43 not in (38,76, 43, 62, 19))
print(1 not in range(10))
print('P' not in 'Hello, Python')
# 연습 1
fruit1 = ['사과','배','귤','오렌지']
fruit2 = ['토마토','바나나','수박','딸기']
fruits = fruit1+fruit2
print('사과' in fruits)
# 연습 2
print(('사과' in fruit1) or ('사과' in fruit2))
3. 인덱스 사용/삭제하기
# 인덱스 사용하기
- del 시퀀스객체[인덱스]의 경우, 지정된 인덱스 삭제해 줌 (※ 튜플, range, 문자열 삭제 안됨, 리스트만 가능)
# 인덱스 사용하기
a = list(range(1,21,2)) #시작 + 증가폭으로 설정됨
print(a)
print(a[2]) # 2번째 값 출력
# del로 시퀀스 객체 삭제하기
a = [38,21,53,62,19]
del a[2] # 2번째 값 삭제
print(a)
# 인덱스 기반 슬라이스 사용하기
- 시퀀스 슬라이스 : 시퀀스 객체의 일부를 잘라냄
- 리스트 일부를 잘라서 새 리스트를 만듦
- 시퀀스객체[시작인덱스:끝인덱스]
- 시퀀스객체[시작인덱스:끝인덱스:인덱스증가폭]
* 음수도 사용 가능하며, 생략도 가능(▼ 아래 참고)
- 시퀀스 객체[:n] : 앞에 생략하면 자동으로 처음부터 설정값까지
- 시퀀스 객체[:] : 리스트 전체를 가져옴
- 시퀀스 객체[n:] : 마지막 값까지 가져옴
- 시퀀스 객체[n::n] : 증가폭 설정하기
- 시퀀스 객체[n:n:n] : 시작인덱스/끝인덱스/증가폭
# 슬라이스 연습하기 1
a = [0,10,20,30,40,50,60,70,80,99]
print(a[0:4])
print(a)
# 슬라이스 연습하기 2
x = input() #input : 12345
y = input() #input : abcde
print(x[1::2])
print(y[::2])
z = x[1::2]+y[::2]
print(z)
4. 딕셔너리 사용하기
- {} 중괄호 안에 키:값 형식으로 저장하여 사용함
- 중복된 키는 저장하지 않으며, 키가 중복되면 가장 뒤에 있는 값만 사용함
- 키는 문자열뿐만 아니라 정수, 실수, 불(bool)도 사용 가능
- 값에는 리스트, 딕셔너리 등을 포함하여 사용 가능
- 딕셔너리 만드는 법 : [], dict()
# zip 함수 기반 딕셔너리 만들기(★활용도 높음★)
# 작성방식
딕셔너리명 = dict(zip(['키1','키2','키3'],[값1,값2,값3]
딕셔너리명 = dict('키1'=값1,'키2'=값2)
딕셔너리명 = dict({'키1':값1, '키2':값2})
# zip 함수 활용하여 dict 생성하기
lux = dict(zip(['health','mana','melee','armor'],[490,334,550,18.72]))
# 딕셔너리 응용하기 (리스트 기능 활용)
store = {'apple':['사과',1000],'banna':['바나나',700],'orange':['오렌지',1500],'pineapple':['파인에플',2000]}
x= input('과일 이름을 입력하세요:') #인풋값 기능 설정
print('선택한', store[x][0],'의 가격은', store[x][1], '원 입니다.')
5. if 조건문 이해하기
- IF 조건문 사용 시, 들여 쓰기 및 콜론(:) 주의 필요함
# 작성방식
if 조건식 :
코드 # 조건식을 만족할 때 실행할 코드 작성
- else 사용 시, 조건식이 만족할 때와 만족하지 않을 때 각각 다른 코드를 실행할 수 있음 (단독 사용 불가)
# 작성방식
if 조건식 :
코드 1
else :
코드 2
- elif는 여러 개의 조건식을 지정하여 각각 다른 코드 실행 가능 (단독 사용 불가)
- if, elif, else 모두 사용 시, 아래와 같이 표현 가능
# 작성방식
if 조건식 :
코드 1
elif 조건식 :
코드 2
elif 조건식 :
코드 3
else :
코드 4
※ 파이썬에서 참과 거짓 취급 기준
- True : 0이 아닌 숫자, 내용 포함된 문자열, 리스트, 튜플, 딕셔너리
- False : 0, None, 빈 문자열, 리스트, 튜플, 딕셔너리
6. for & while 반복문 이해하기
- 반복문은 반복 횟수, 반복 및 정지 등 활용 가능
- reversed를 사용하면 숫자의 순서를 반대로 뒤집을 수 있음(문자도 가능)
- for 변수 in range 함수 사용 시, (시작, 끝, 증가폭) 기능을 동일하게 사용 가능함
# 작성방식
for 변수 in 시퀀스자료형 :
반복할 코드
# reversed 사용 예제
for i in reversed(range(10)) :
print('Hello World',i)
- whil 반복문 : 조건식으로만 동작
# 작성방식
while 조건식 :
반복할 코드
변화식
7. 기타 함수 사용하기
# split() 함수 : 한 번에 두 개를 입력받기 위해 사용하는 함수(input 함수와 같이 사용)
# split() 함수 기반, 다수 데이터 정수/실수 변환 연습
s1, s2 = input("숫자를 /로 구분하여 입력하세요 :")).split('/')
total = int(s1)+int(s2) #변수별 정수 변환해야함
print("두 수의 합은", total, "입니다.")
# map() 함수: 다수의 데이터를 정수, 실수 등으로 변환 시 사용하는 기능
# map 함수 기반 연습
print("국어, 영어, 수학, 과학 점수의 평균을 구하는 프로그램입니다.")
s1,s2,s3,s4,s5 = map(float,input('과목별 점수를 입력해주세요 : ').split())
total = s1 + s2 + s3 + s4 +s5
avg = total/5
print('평균 점수는', avg, '입니다.')
# sep() 함수 : print문의 값 사이를 어떻게 출력할 것인지를 지정해 주는 기능
- sep = '\n' 사용 시, 값을 한 줄에 하나씩 출력 가능
- end ='' 사용 시, 줄 바꾸기 금지해 줌
# sep() 함수 활용하기
print(1,2,3, sep =',')
print(1,2,3, sep =', ')
print('hello','python', sep ='')
print(1920,1080, sep ='x')
# range() 함수 : 지정한 횟수 숫자는 생성되는 숫자에 포함되지 않음
- range(횟수) or 시작하는 숫자/끝나는 숫자 지정 가능
- range(시작, 끝, 증가폭) 설정 가능
# range() 함수 연습하기 1
print(range(5,12)) # 5~11 값을 출력
# range() 함수 연습하기 2
b = list(range(5,12)) #range 함수 기반 리스트 생성
print(b) # 연습하기 1과 동일한 값 출력
# range() 함수 증가폭 연습하기
c = list(range(-4,10,2))
print(c) # 시작 숫자 -4~9까지 2씩 증가된 값 출력
# len() 함수 : list, range, tuple, 문자열 개수 구하기 가능함
# 작성방식
len(시퀀스객체)
# input(), format() 함수 : 입력과 출력 기능을 지원함
# input() 기본형태
x = input()
# format() 기본형태
x = '출력'
print('format()함수는 값을 {}합니다.'.format(x))
# 다중값도 출력 가능
x = 'format()'
y = '출력'
print('{}함수는 값을 {}합니다.'.format(x,y))
# 또는,format()함수를 출력될 문자열에 포함시키는 방법도 있음
x = '출력'
print(f'format()함수는 값을 {x}합니다.') # f' 위치 주의필요
8. 파일 읽고 쓰기
# open() 함수를 사용해 new file 생성, 쓰기 및 읽기 가능함
- 파일 열기 시, 'r'은 읽기 모드(수정불가), 'w'는 쓰기 모드, 'a' 추가모드(파일 마지막 내용 추가)
→ read, write, append의 앞글자를 따서 파일 열기 모드 선택 가능
※ 파일 오픈 후, close() 반드시 사용해줘야 함
# 작성방식(파일 모드 : 'r','w','a' 중 사용)
파일객체 = open('파일이름(확장자포함)','파일모드')
파일객체.close()
# with문 사용 시, close 없이 이용 가능함(자동 close 기능 지원)
# 작성방식
with open('파일이름(확장자포함)', '파일모드') as 파일객체 :
코드
당분간 Python 수업이 계속 이어지는데요.
쓰고 읽는 것은 첫날 시작할 때보다 많이 나아졌지만, 소스 구조화라고 할지..
간단하게 표현할 수 있는 소스도 아직까진 복잡하게 짜는 것 같습니다.
간단한 연습문제 기반 코드 작성해 보니 점점 나아지는 것 같은데 구조 이해도 빨라질 수 있도록 많이 연습해봐야 할 것 같아요...!
게다가 Python 강의가 끝나고 나면 첫 프로젝트가 진행될 예정이기에...
저도 뒤처지지 않도록 복습 열심히 해야겠습니다!
지난 2주에 비하면 정신없는 3주 차였는데 앞으로 계속 이런 느낌이지 않을까 싶네요.
커피와 간식을 항상 챙겨놔야겠습니다 ㅋㅋ
'부트캠프 > [패스트캠퍼스] 데이터분석 9기' 카테고리의 다른 글
패스트캠퍼스 데이터분석 현직자 특강 후기 (0) | 2023.07.26 |
---|---|
[부트캠프] 데이터분석 학습일지 4주차 (0) | 2023.07.14 |
패스트캠퍼스 데이터분석 부트캠프 9기 OT 후기 (0) | 2023.07.05 |
[부트캠프] 데이터분석 학습일지 2주차 (0) | 2023.06.30 |
[부트캠프] 데이터분석 학습일지 1주차 (0) | 2023.06.23 |