부트캠프 정리

[멋쟁이사자처럼 데이터분석 부트캠프 1주차]-파이썬 기초

지니248 2025. 7. 24. 10:20
코랩(Colab) 사용법과 함께 파이썬 기초 문법을 학습했습니다.
연산자, 문자열 처리, 자료형, 조건문, 반복문, 함수 등 파이썬의 기본 구조를 익히고 실행해보며 개념을 익혔습니다.
⚠️본 글은 부트캠프 수업 내용을 기반으로 한 개인 학습 기록입니다.

코랩(Colab)이란?

  • Google Colaboratory의 줄임말
  • 구글에서 제공하는 클라우드 기반 파이썬 실행 환경
  • Jupyter Notebook 환경을 웹에서 제공
  • GPU/TPU 사용 가능하여 딥러닝, 머신러닝 등 고성능 연산에 유리하다
  • Google Drive와 연동되어 파일 저장/불러오기 용이

파이썬(Python)

1. 파이썬 기본 내장 연산

  • 숫자 형태는 연산이 가능!
  • 덧셈 (a+b)
  • 뺄셈 (a-b)
  • 곱셈 (a*b)
  • 나눗셈 (a/b)
  • 몫 (a//b)
  • 나머지 (a%b)
  • 거듭제곱 (a**b)
a = 6
b = 4
c = 3

print(a+b)  #10
print(a-b)  #2
print(a*b)  #24
print(a/b)  #1.5
print(a//b) #1
print(a**b) #1296

2. 내장 함수

  • int: 실수 ➡️ 정수
  • float: 정수 ➡️ 실수
  • str: 숫자 ➡️  문자열
  • abs: 절대값
  • round: 반올림
  • pow: 거듭 제곱
print(int(3.14))          #3
print(float(3))           #3.0
print(repr(str(321)))     #'321' / 'repr'은 문자열임을 명확히 보여지게 하기 위함
print(abs(-4))            #4
print(round(3.141592, 2)) #3.14
print(pow(2, 4))          #16

3. 문자열 인덱싱

  • 한 글자만 선택
  • 파[0] 이[1] 썬[2]
  • 앞에서는 0부터 시작
  • 파[-3] 이[-2] 썬[-1]
  • 뒤에서는 -1부터 시작
text = "파이썬 프로그래밍"
print(text[0])  #파
print(text[3])  #공백 출력
print(text[-1]) #밍
print(text[-4]) #로

4. 문자열 슬라이싱

  • 범위 선택
  • [시작값 : 끝값 : 간격]
  • 시작값 ➡️ 슬라이스 시작 위치
  • 끝값 ➡️ 슬라이스 종료 직전 인덱스
  • 간격 ➡️ 몇 칸씩 건너뛸지 (기본값은 1)
text = "파이썬 프로그래밍"
print(text[0:2]) #파이
print(text[6:])  #그래밍
print(text[4:9]) #프로그래밍
print(text[:5])  #파이썬 프
print(text[::3]) #파 그

5. 문자열 함수 및 메서드

  • len(): 문자열 길이 출력
  • split(): 문자열 나누기
  • count(): 문자 개수 세기  원하는 단어 지정해서 셀 수 있음
  • replace('a','b'): 문자열 바꾸기
  • find(): 위치 알려주기  원하는 단어 위치 알 수 있음
  • upper(): 소문자 ➡️ 대문자
  • lower(): 대문자 ➡️ 소문자
  • join(): 문자열 삽입
  • strip(): 양쪽 공백 삭제
  • lstrip(): 왼쪽 공백 삭제
  • rstrip(): 오른쪽 공백 삭제
  • title(): 단어의 첫 글자 대문자로 바꾸기
data_string = "  hello python world       "

#문자열 길이 출력
print(len(data_string))                    # 27

#문자열 나누기
print(data_string.split())                 # ['hello', 'python', 'world']

#문자 개수 세기
print(data_string.count('o'))              # 3

#문자열 바꾸기
print(data_string.replace('hello', 'Hi'))  # '  Hi python world       '

#위치 알려주기
print(data_string.find('python'))          # 8

#소문자를 대문자로 바꾸기
print(data_string.upper())                 # '  HELLO PYTHON WORLD       '

#대문자를 소문자로 바꾸기
print(data_string.lower())                 # '  hello python world       '

#문자열 삽입
print('-'.join(data_string))               # ' - -h-e-l-l-o- -p-y-t-h-o-n- -w-o-r-l-d- - - - - - -'

#양쪽 공백 삭제
print(data_string.strip())                 # 'hello python world'

#왼쪽 공백 삭제
print(data_string.lstrip())                # 'hello python world       '

#오른쪽 공백 삭제
print(data_string.rstrip())                # '  hello python world'

#단어의 첫 글자 대문자로 바꾸기
print(data_string.title())                 # '  Hello Python World       '

6. 리스트 [ ]

1) 리스트 특징

  • 순서가 있음 (인덱스로 접근 가능)
  • 추가, 삭제, 수정 가능
  • 다양한 타입 저장 가능
  • 중복 허용

2) 리스트 메서드

  • sort(): 리스트 정렬
  • reverse(): 순서 뒤집기
  • append(): 자료 요소 추가
  • extend(): 리스트 확장
  • insert(a,b): 리스트 요소 삽입(a번째 위치에 b를 삽입)
  • remove(): 원하는 리스트 요소 제거
  • pop(): 맨 뒤의 리스트 요소 제거
  • count(x): 리스트에 포함된 요소 x의 개수 세기

3) 리스트 컴프리헨션

  • [넣을 값(결과) for 항목 in 순회 대상 if 조건]
#for문 사용
specials = []
for text in texts:
    if "_" in text or "-" in text:
        specials.append(text)

#리스트컴프리헨션 사용
specials = [text for text in texts if "_" in text or "-" in text]

7. 튜플 ()

  • 순서가 있음 (인덱스로 접근 가능)
  • 변경 불가능한 데이터 모음
  • 다양한 타입 저장 가능
  • 중복 허용
  • 리스트보다 빠름

8. 딕셔너리 {}

  • 키-값 쌍으로 저장
  • 순서 없음
  • 키가 유일해야 함 (중복 ❌)
  • 변경 가능
  • 빠른 검색 성능

9. 집합 {} or set()

  • 중복 제거
  • 순서 없음
  • 변경 가능
  • 합집합: |
  • 교집합: &
  • 차집합: -
  • 대칭차집합: ^ (두 집합에서 겹치지 않은 것만 모은 집합)

10. input 함수

  • 항상 문자열(str) 타입으로 데이터 반환
#int를 넣어 정수로 형변환
age = int(input("나이를 입력하세요 >>"))
print(age)

#float를 넣어 실수로 형변환
current_temp = float(input("현재 온도: "))
print(current_temp)

11. if-else문, elif문

  • if-else문
if 조건:
    조건이 참일 때 실행
else:
    조건이 거짓일 때 실행

 

  • elif문
if 조건1:
    조건1이 참일 때 실행
elif 조건2:
    조건2가 참일 때 실행
elif 조건3:
    조건3이 참일 때 실행
else:
    모든 조건이 거짓일 때 실행

12. for 반복문

  • 컬렉션(리스트, 문자열 등)의 각 요소를 하나씩 꺼내서 처리
'''
for 변수 in 컬렉션:
    실행할 코드
'''

for i in range(5):
    print(i)

'''
출력결과
0
1
2
3
4
'''

13. while 반복문

  • 조건이 참(True)인 동안 계속 반복 (무한루프)
  • break: 반복문 즉시 종료, while True문 멈추기 위해 사용
  • continue: 현재 반복을 건너뛰고 다음 반복으로 넘어감
  • pass: 구현을 미룸 (임시코드), 완성된 코드에는 있을 수 없음

14. 함수

  • def: 함수 정의 키워드
  • 함수 이름: 함수를 호출할 때 사용
  • 매개변수: 함수가 받는 입력값
  • return: 함수의 결과값 반환 (선택사항)

15. 매개변수

#기본 정의형
def 함수이름(매개변수):
    실행할코드
  • 일반 매개변수
    • 일반적인 형태, 함수 호출 시 반드시 값 전달
    • def numbers (a, b):
  • 디폴트 매개변수
    • 디폴트 매개변수는 일반 매개변수 뒤에 와야 한다
    • 매개변수에 기본값 설정하여, 값 전달하지 않으면 기본값을 사용
    • def numbers(a, b=1):
  • 가변 매개변수 (*args)
    • 개수가 정해지지 않은 매개변수 받을 때 사용
    • def numbers(*num):
  • 키워드 매개변수 (**kwargs)
    • 키-값 쌍으로 매개변수 전달할 때 사용
    • def student_record(name, **info):
  • 키워드 전용 매개변수
    • method와 precision은 반드시 이름을 써서 호출
    • precision: 소수점 아래 정밀도 설정, 기본값은 2자리
    • 매개변수 이름을 명시적으로 지정해서 호출하도록 강제한다
    • def_student_record(name, *, methon="score", precision=2):
  • 매개변수 순서
    • 일반 매개변수 ➡️ 디폴트 매개변수 ➡️ *args ➡️ **kwargs

16. 클래스 (Class)

  • 클래스: 객체를 만들기 위한 설계도 또는 틀
  • 객체(Object): 클래스를 바탕으로 만들어진 실제 개체
  • 메서드(Method): 클래스 내부에 정의된 함수
  • self: 객체 자기 자신을 가리킴
class 클래스이름:
    def __init__ (self, 매개변수):
        self.속성 = 값

    def 메서드 (self):
        동작코드

17. 생성자

  • 객체가 생성될 때 자동으로 호출
  • __init__: 생성자(객체 만들 때 사용)
  • super(): 부모 클래스에 접근
  • isinstance(): 객체가 특정 클래스인지 확인

18. 상속

  • 기존 클래스의 속성과 메서드를 물려받아 새로운 클래스를 만드는 것
  • 코드 재사용성을 높이고 유지보수를 쉽게 만든다 
    • 부모 클래스(Parent Class): 상속 해주는 클래스
    • 자식 클래스(Child Class): 상속 받는 클래스
    • 메서드 오버라이딩: 자식 클래스가 부모 클래스의 메서드를 재정의 ➡️ 자식 클래스만의 동작으로 바꿈
    • 다중 상속: 하나의 자식 클래스가 여러 부모 클래스로부터 상속 받는 것 
#상속(Inheritance)

class 부모:
    def __init__(self):
        ...

class 자식:
    def __init__(self):
        super().__init__()
#다중 상속(Multiple Inheritance)

class A:
    def method_a(self):
        print("A")

class B:
    def method_b(self):
        print("B")

class C(A, B):
    pass

c = C()
c.method_a() # A
c.method_b() #B
#오버라이딩(Overriding)

#부모 클래스 정의
class Vehicle:
    #생성자: 브랜드 이름을 받아서 객체에 저장
    def __init__ (self, brand):
        self.brand = brand

    #일반 차량 시동 메서드
    def start(self):
        print("차량이 시동을 겁니다.")

    #차량 정보 출력 메서드
    def info(self):
        print(f"브랜드: {self.brand}")

#자식 클래스: 전기차(Vehicle 상속받음)
class ElectircCar(Vehicle):
    #생성자: 브랜드와 배터리 용량을 받아 초기화
    def __init__ (self, brand, battery_capacity):
        #부모 클래스의 생성자 호출
        super().__init__(brand)
        self.battery_capacity = battery_capacity
    
    #전기차 시동 메서드(오버라이딩)
    def start(self):
        print("전기차가 조용히 시동을 겁니다.")

    #전기차 정보 출력 메서드(오버라이딩)
    def info(self):
        print(f"전기차 브랜드: {self.brand}")
        print(f"배터리 용량: {self.battery_capacity}kWh")

#Vehicle 클래스 객체 생성
normal_car = Vehicle("현대")
#ElectricCar 클래스 객체 생성
electirc_car =  ElectircCar("테슬라", 75)
#각각의 시동 메서드 호출
normal_car.start()
electirc_car.start()

✔️ 오늘 배운 내용 요약

  • Colab 사용법 (설치 없이 파이썬 실행 환경 익히기)
  • 기본 문법: 연산자, 내장 함수, input 처리
  • 문자열 처리: 인덱싱, 슬라이싱, 메서드 활용
  • 자료형: 리스트, 튜플, 딕셔너리, 집합
  • 조건문과 반복문: 조건문(if), 반복문(for/while)
  • 함수 정의와 사용법: def로 함수 정의하고, 매개변수return을 활용하여 원하는 값 반환하기