데이터 분석 기본_파이썬 기초(조건문과 반복문, 함수 기초)
Data Science Lifecycle

데이터 분석 커리큘럼
1) 파이썬 기초
-파이썬 환경설정
-파이썬 기초
2) 파이썬 응용
-웹 크롤링
-데이터 시각화
-확률통계
3) 인공지능
-머신러닝
-딥러닝
데이터 분석 사례
-데이터 수집 → 시각화 → 추천 시스템




파이썬 시작하기
-주피터 노트북 UI 및 단축키


파이썬 기초
자주 쓰는 단축키
-입력 모드: 셀 안쪽 선택(enter)
-단축키 모드: 셀 왼쪽(전체) 선택(esc)
-a: 선택한 셀 위에 새로운 셀 추가
-b: " 아래에 "
-dd: 셀 삭제
-z: 삭제된 셀 되살리기
-shift + enter: 실행 후 다음 셀로 이동
-ctrl + enter: 현재 셀에서 실행
-i: 셀 실행 취소
-ctrl + /: 주석 처리
-m: 마크다운(텍스트 꾸미는 문법)
→ 실행하면 '헤딩'(제목)
→ 샵이 많을수록 글씨 작아짐
-y: 마크다운을 다시 주석으로 되돌림
-Shift + m: 셀 합치기(단축키 모드에서)
-pwd(present working direct): 현재 작업경로
변수와 자료형
1. 숫자
-정수(int)
-실수(float)
print(10/2) # 나눗셈 >>> 5.0
print(3*5) # 곱셈 >>> 15
print(2**3) # 제곱 >>> 8
print(7//2) # 몫 >>> 3
print(7%2) # 나머지 >>> 1
2. 문자열(string)
-따옴표(", ')로 감싸면 문자열
print("데이터 분석")
print("123") # 숫자 x, 문자열 o
-문자열 덧셈 가능 → 문자열끼리 이어붙여서 쓰게 됨
-문자열 곱셈 가능
print("안녕"+"하세요") # >>> 안녕하세요
print("---"*3) # >>> ---------
3. 변수 및 함수
- = : 오른쪽 내용을 왼쪽 변수에 저장
-len() : 데이터 길이 확인 함수(정수는 길이 알 수 x → 문자열로 만들어 주어야 함)
-함수 용법 2가지 꼴
- 함수(데이터)
- 데이터1.함수(데이터2)
# a라는 변수에 "멀티캠퍼스"
# b라는 변수에 "파이썬 데이터 분석"
# 문자열 덧셈을 수행하고, len 함수로 길이 확인 후 c라는 변수에 저장하여 print함수로 출력
a="멀티캠퍼스"
b="파이썬 데이터 분석"
c=len(a+" "+b)
print(c) # >>> 16
4. 리스트
1) 리스트 생성
- [] : 리스트, 인덱싱
- {} : 딕셔너리
- () : 함수
-리스트: 순서(index)가 있는 일렬로 정렬된 데이터 바구니(순서는 0부터 시작)
※리스트 안에는 다양한 데이터 형태 들어갈 수 있음(리스트 안 리스트도 가능)
# 정수 1~10까지 마음대로 숫자 3개 선택해서 리스트로 만들고 list_num 변수에 저장
# 점심 메뉴 3개 리스트로 묶어서 menu 변수에 저장
list_num=[4, 2, 8]
menu=["오므라이스", "라멘", "김치찌개"]
print(list_num) # >>> [4, 2, 8]
print(menu) # >>> ['오므라이스', '라멘', '김치찌개']
2) 리스트 데이터 추가 및 삭제
-.append(데이터값) : 리스트에 데이터 추가
→ 새로 추가한 값은 맨 뒤로 들어감
-.pop(위치값) : 리스트의 (마지막) 데이터 삭제
→ 사실상 pop()은 pop(-1)임
price = [500, 600, 700, 800]
price.append(900) # >>> [500, 600, 700, 800, 900]
price.pop() # >> [500, 600, 700, 800]
5. 인덱싱과 슬라이싱
1) 인덱싱
-위치나 조건으로 원하는 데이터 찾기
-대괄호 [] 사용
-[0, 1, 2, ..., -3, -2, -1]
-인덱스 사용하여 값 수정 가능
# 첫 번째 제품의 가격이 550으로 올랐다면?
price[0] = 550
price # >>> [550, 600, 700, 800]
2) 슬라이싱(구간으로 인덱싱)
-찾고싶은 첫 번째 값 index : 찾고 싶은 마지막 값 index + 1
→ 첫 번째 값부터 시작하되 콜론 뒤 숫자는 포함 x
-맨 앞의 0 생략 → 처음 값(0)부터
-맨 뒤의 0 생략 → 마지막 값(-1)까지
-앞뒤 숫자 모두 생략 → 전체 데이터 슬라이싱
price[0:2] # >>> [550, 600]
price[:3] # >>> [550, 600, 700]
price[1:] # >>> [600, 700, 800]
priec[:] # >>> [550, 600, 700, 800]
연산자
1) 비교 연산자
>= : 이상
> : ~보다 크다
== : 같다
!= : 같지 않다
2) 논리 연산자
and : 두 값이 모두 참인 경우 True. 하나라도 거짓이면 False
or : 줄 중 하나라도 참이면 True
not : 역으로 판단
if (1==1) and (2==3):
print("True")
else:
print("False")
# >>> False
조건문과 반복문
1. 조건문
-if-elif-else문
if 조건1:
실행문1
elif 조건2:
실행문2
else:
실행문3
-elif는 여러 개 올 수 있음
-조건1이 True일 때 실행문1이 실행되고, False이면 다음 조건 확인
-조건2가 True일 때 실행문2가 실행되고, False이면 실행문3 실행
# Q. 점수에 따라 학점을 부여하는 프로그램을 만들고 싶다.
# 60점 미만은 F, 60점 이상 90점 미만이면 B, 90점 이상은 A
i = 0 # -> 변수를 지정해서 숫자만 바꾸면 되도록
if score[i] >= 90:
print("A")
elif score[i] >= 60:
print("B")
else:
print("F")
-input() : 사용자에게 변수에 넣을 값 입력받음
# 입력받은 점수를 가지고 학점 판단하기
score_input = int(input())
if score_input >= 90:
print("A")
elif score_input >= 80:
print("B")
elif score_input >= 70:
print("C")
else:
print("F")
2. 반복문
1) for문
-정해진 횟수/대상을 차례대로 반복
for i in 반복대상:
실행문
# 'for _ in 반복대상'도 가능
# (의미 없는 변수 나타낼 때. 반복의 의미만을 가짐)
# 가격 각각 출력
price = [100, 200, 300]
for i in price:
print(i) # → i가 print 자리에 들어가며 반복됨
-range(시작 숫자, 끝 숫자, 간격) : 정수의 범위(0, 1, 2, ...)
for i in range(3):
print("Hi")
# >>> Hi
# >>> Hi
# >>> Hi
# 5부터 10까지 2씩 증가시키면서 반복문 수행
for i in range(5, 10, 2):
print(i)
# >>> 5
# >>> 7
# >>> 9
2) while문
-어떤 조건이 만족되는 동안 반복 실행
i = 0
while i < 5:
print(i)
i = i+1 # → print 후에는 i에 1이 더해진 후 저장됨
# i +=1 과 동일한 작동 원리
※ for문 vs. while문
| for문 | while문 | |
| 언제? | 반복 횟수를 정확히 알고 있을 때 | 반복 횟수는 잘 모르지만, 반복이 중지되어야 할 조건이 명확할때 |
| 예시 | 학생들의 성적을 채점하는 코드 | 가위바위보에서 '이기면 종료'인 조건이 주어졌을 때 |
실습
# 정수 1부터 10까지 있을 때 각 숫자를 제곱해서 리스트에 저장하는 코드
# range 이용 ver.
square = []
for i in range(1, 11):
square.append(i**2)
i = i+1
print(squre)
# >>> [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
# 정수 1부터 10까지 있을 때 각 숫자를 제곱해서 리스트에 저장하는 코드
# list 이용 ver.
num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
squre_list = []
for i in num_list:
square_list.append(i**2)
print(square_list)
# >>> [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
3) break
-반복하다가 중간에 멈추게 함
for i in range(10) # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
if i == 4: # i가 4가 되면
break # 반복문을 멈춤
print(i)
# >>> 0
# >>> 1
# >>> 2
# >>> 3
※ print()가 if절에 들어가 있으면 출력 안됨
4) continue
-특정 조건에서 남은 명령을 건너뛰고 다음 반복문으로 넘어감
for i in range(5):
if i == 3: # 결과에 3이 제외되어있음
continue
print(i)
# >>> 0
# >>> 1
# >>> 2
# >>> 4
※ 변수명 짓기 주의사항
-기존의 예약어(int, float, if, for, ...)는 사용 불가
함수
1. 함수 기초
1) 함수(fucntion)
: 코드의 덩어리
-재활용 측면에서 유리
def 함수이름(매개변수1, 2, ...): # 매개변수(parameter)에 들어가는 것을 '인수(argument)'라 부름
명령문1
명령문2
return 반환값 # 반환값 없을 수도 있음
# 두 수의 합을 구하고 반환(output)하는 함수 정의
def num_sum(a, b):
c = a+b
print(c)
# return c
# 함수의 호출
num_sum(1, 2)
# >>> 3
2) print vs. return
-print: 전광판(실재하는 것은 x. 저장되지 않음)
def num_sum(a, b):
c = a+b
print(c)
d = num_sum
# >>> d → 변수에 저장되지 않음
-return: 실물 output이 우리에게 옴
def num_sum(a, b):
c = a+b
return c
d = num_sum
# >>> a+b
실습
# 사각형의 넓이 구하는 함수 정의
def cal(x, y):
# x: 사각형의 가로 길이
# y: 사각형의 세로 길이
return x*y
cal(10, 20)
# >>> 200
# 성적을 입력받아 학점을 반환하는 함수 정의
def grade_define:
if score > 80:
return "A"
elif score >= 60:
return "B"
else:
return "F"
grade_define(92)
# >>> 'A'
2. 함수 심화
1) 지역 변수와 전역 변수
-지역 변수: 함수 안에서만 정의됨(함수 밖에서 호출 시 '변수 정의 x' 오류)
-전역 변수: 프로그램 전체에서 정의됨
x = 10 # 전역변수
def test(t):
t = 20 # 지역변수
print(t) # >>> 아무것도 나오지 x. 정의만 했을 뿐
test(x) # >>> 20 (위에서 정의한 test(t)에 의함)
print(x) # >>> 10
def f(): # 매개변수 없음
s = "I love London" # 지역 변수 s
print(s)
s = "I Lone Paris" # 전역 변수 s
f() # >>> I love London
print(s) # >>> I love Paris
-global 변수명: 지역 변수를 전역 변수로 바꾸어줌
def f():
global s
s = "I love London"
print(s)
s = "I love Paris"
f() # >>> I love London
print(s) # >>> I love London
3. 함수의 인수
1) 키워드 인수
: 매개변수의 변수명을 사용하여 함수의 인수 지정(등호 = 사용)
-인수의 순서 바꾸어도 매개변수 이름만 제대로 작성하면 작동
def print_something(my_name, your_name):
print("Hello {0}, my name is {1}".format(your_name, ny_name)
print_something("Jye", "Chani")
# >>> Hello Chani, my name is Jye
print_something(your_name = "Chani", my_name = "Jye")
# >>> Hello Chani, my name is Jye
2) 디폴트 인수
: 매개변수에 기본값 지정
-사용자가 아무것도 넣지 않아도 디폴트 값으로 자동으로 인식
-통계에서 제공하는 수치에 많이 사용
def print_something_2(my_name, your_name = "Chani"): # your_name에 기본값으로 "Chani"가 저장됨
print("Hello {0}, my name is {1}".format(your_name, my_name))
print_something_2("Jye", "Chani")
# >>> Hello Chani, my name is Jye
print_something_2("Jye", ) # 두 번째 매개변수 입력 x -> 디폴트 인수로 저장된 "Chani" 할당
# >>> Hello Chani, my name is Jye
3) 가변 인수
4) 키워드 가변 인수
4. 좋은 코드를 작성하는 방법
1) 코딩 규칙
-들여쓰기는 4 스페이스
-한 줄은 최대 79자까지
-불필요한 공백은 없애기
-'=' 연산자는 1칸 이상 띄우지 않는다
-주석은 항상 갱신하고 불필요한 주석은 삭제한다
-소문자 l, 대문자 O, 대문자 I는 사용을 금한다
-함수명은 소문자로 구성하고, 필요하면 밑줄로 구분한다
2) 함수 개발 가이드라인
-함수 내용은 가능하면 짧게
-함수 이름에 역활도 의도 명확히
-한 가지 함수는 한 가지 역할을 하도록
-함수를 만들어야 하는 경우
- 공통으로 사용되는 코드를 함수로 반환
- 복잡한 로직이 사용되었을 때 식별 가능한 이름의 함수로 변환
실습 1)
AIVE 카페의 키오스크 시스템을 설계하세요. 운영하는 메뉴는 [아메리카노, 라떼, 스무디] 입니다.
주문할 메뉴와 수량, 그리고 할인 쿠폰 번호를 입력받아 최종 결제 금액을 계산하는 프로그램입니다.
menu_list = ['아메리카노', '라떼', '스무디']
1. 입력: 사용자로부터 "메뉴명 수량 쿠폰번호"를 공백으로 구분하여 한 번에 입력받습니다. (예: 카페라떼 3 AIVE-1234)
2. 메뉴 및 가격:
아메리카노: 3,000원
라떼: 4,000원
스무디: 5,000원
* 이외 메뉴가 들어오면 "해당 메뉴는 없습니다."를 출력하세요.
3. 할인 혜택 (쿠폰):
- 입력된 쿠폰 번호가 "AIVE"로 시작하면 전체 금액에서 2,000원 보너스 할인을 적용합니다. (힌트: startswith() 메서드 활용)
4. 결과 출력: f-string을 사용하여 "최종 결제금액은 {최종 결제금액}입니다." 를 출력하세요.
# 사용자 입력
user_input = input("메뉴명, 수량, 쿠폰번호를 공백으로 구분하여 입력해주세요 \n
(예: 라떼 3 AIVE-1234)\n)
print(user_input)
# 문자열 분리
menu = user_input.split(" ")[0]
count = user_input.split(" ")[1]
coupon = user_input.split(" ")[-1]
# 메뉴별 가격 설정
menu_list = ['아메리카노', '라떼', '스무디']
if menu in menu_list:
# pass # 자세한 내용 쓰지 않고 구조만 잡아두고 싶을 때
if menu == menu_list[0]:
price = 3000
elif menu == menu_list[1]:
price = 4000
else:
price = 5000
else:
print("해당 메뉴는 없습니다")
print(price)
# 최종 결제금액 산출
if coupon.endswith("AIVE"):
discount = 2000
else:
discount = 0
total_price = price*count-discount
print(f"최종 결제 금액은 {total_price}원 입니다")
실습 2)
1. 문제 설명: 주차장 출차 차량의 번호를 확인하고, 차량 종류와 시간에 따른 주차 요금을 알려주는 프로그램을 작성하세요.
허용되는 차량 종류는 승용차, 트럭, 기타 입니다.
2. 입력: 사용자로부터 "차종 주차시간(분)"을 공백으로 구분하여 한 번에 입력받습니다. (예: 승용차 135)
3. 요금 정책 (10분당 요금)
- 승용차: 500
- 트럭: 800
- 기타: 1,000원
4. 요금 계산법: (주차시간(분) // 10) * 10분당 요금으로 계산합니다. (10분 미만은 버림 처리
- // : 나머지는 버리고 몫만 남기는 연산자 (ex. 125//10 = 12)
5. 결과 출력: f-string을 사용하여 "총 요금은 {최종 요금}입니다." 라고 출력하세요.
6. 입력 및 출력 예시
입력 예시 출력 예시 설명
승용차 135 총 요금은 6500원입니다. 130분(13개 묶음) × 500
기타 60 총 요금은 6000원입니다. 60분(6개 묶음) × 1,000원
# 사용자 입력 받기
user_input = input("차량 정보를 입력하세요. 차종 주차시간(분)을 공백으로 구분하여 입력하세요.
\n (예: 승용차 135) \n")
user_input
# 입력 문자열 분리
car_type = user_input.split(' ')[0]
time_parking = int(user_input.split(' ')[1]) # 주차시간(분)
print(car_type, time_parking)
# 차종에 따른 10분단 주차 요금 결정
if car_type == '승용차':
rate_per_10min = 500 # 승용차의 10분당 요금
elif car_type == '트럭':
rate_per_10min = 800
else:
rate_per_10min = 1000
# 10분당 요금
print(rate_per_10min)
# 총 주차요금
total_fee = (time_parking//10)*rate_per_10min
print(f"최종 주차요금은 {total_fee}원 입니다.")
#부트캠프후기 #멀티캠퍼스부트캠프 # 데이터마케팅부트캠프
'부트캠프 > 멀티캠퍼스_퍼포먼스 마케팅과 데이터 분석' 카테고리의 다른 글
| [멀티캠퍼스 부트캠프 5주차(1)] 데이터 분석 기본_웹 통신 개념 (0) | 2026.02.03 |
|---|---|
| [멀티캠퍼스 부트캠프 4주차(2)] 데이터 분석 기본_집계와 시각화 (0) | 2026.02.02 |
| [멀티캠퍼스 부트캠프 4주차(1)] 데이터 분석 기본_파이썬 기초(자료구조, 판다스) (0) | 2026.01.23 |
| [멀티캠퍼스 부트캠프 2주차] 광고 플랫폼 이해_콘텐츠 기획, 뉴미디어(X, 당근, 토스), META, 카카오, 구글 (0) | 2026.01.13 |
| [멀티캠퍼스 부트캠프 1주차] 광고 플랫폼 이해_퍼포먼스 마케팅 개론, 네이버 검색 광고 (1) | 2026.01.06 |