이미지
Day 17 예외 처리: 에러가 나도 당황하지 않는 법 프로그램의 멈춤을 방지하는 든든한 보호막, try-except 안녕하세요! 16일차에서 파일을 읽어오는 법을 배웠죠? 그런데 만약 읽으려는 파일이 없다면 어떻게 될까요? 파이썬은 즉시 빨간색 에러 메시지를 띄우며 작동을 멈춰버립니다. 하지만 예외 처리 를 배우면 에러 상황을 우아하게 넘길 수 있습니다. 1. try-except: "일단 해보고, 안되면 대처해!" 가장 기본적인 안전장치 구조입니다. try 블록에는 원래 하려던 코드를, except 에는 에러가 났을 때 할 행동을 적습니다. 실행 (try) ➡️ 에러 발생 시 대처 (except) ➡️ 계속 실행 try: num = int(input("숫자를 입력하세요: ")) print(f"입력하신 숫자는 {num}입니다.") except ValueError: print("⚠️ 오류: 숫자가 아닌 글자가 입력되었습니다!") print("프로그램이 종료되지 않고 계속 실행됩니다.") 2. 에러의 종류에 따라 다르게 대처하기 파이썬에는 다양한 에러(Exception)가 있습니다. 어떤 에러가 났느냐에 따라 다른 안내 메시지를 줄 수 있습니다. try: a = [10, 20, 30] index = int(input("인덱스 번호를 입력하세요: ")) print(a[index] / 0) # 인덱스 에러와 0으로 나누기 에러 가능성! except IndexError: print("목록...

튜플(Tuple)과 집합(Set): 리스트의 친척들을 소개합니다!!!

Day 9

튜플(Tuple)과 집합(Set): 리스트의 친척들을 소개합니다

데이터를 더 안전하게, 혹은 더 유니크하게 다루는 방법

안녕하세요! 8일차에 문자열 함수로 텍스트 요리를 즐기셨나요? 오늘은 파이썬의 핵심 자료구조 3형제 중 리스트를 제외한 나머지 두 명, 튜플집합을 만나볼 시간입니다. 겉보기엔 리스트와 비슷해 보이지만, 각자 가진 초능력이 다르답니다!

코딩

1. 변하지 않는 가치, 튜플(Tuple)

튜플은 리스트와 거의 똑같지만, 딱 하나 결정적인 차이가 있습니다. "한 번 만들면 절대 내용을 바꿀 수 없다(Immutable)"는 점이죠. 그래서 데이터의 '안전'이 최우선일 때 사용합니다.

  • 리스트는 소괄호 ( )를 사용합니다.
  • 데이터를 수정하려고 하면 에러가 발생하여 데이터를 보호합니다.
  • 리스트보다 속도가 조금 더 빠릅니다.
# 튜플 생성 및 특징
my_tuple = (1, 2, 3)
location = (37.5665, 126.9780) # 좌표처럼 변하면 안 되는 값에 딱!

# my_tuple[0] = 10  <- 에러 발생! (내용 수정 불가)

print("서울 위도:", location[0]) # 인덱싱은 가능
print("데이터 개수:", len(location))

2. 중복은 거부한다! 집합(Set)

수학 시간의 집합을 떠올려보세요. 파이썬의 집합은 중복을 허용하지 않고 순서가 없는 바구니입니다.

집합의 주요 특징:
1. { } 중괄호를 사용합니다.
2. 리스트에 중복된 값이 아무리 많아도 집합으로 만들면 하나만 남습니다.
3. 순서가 없어서 인덱싱([0] 등)을 쓸 수 없습니다.
# 중복 제거 마법
fruits = {"apple", "banana", "apple", "orange", "banana"}
print(fruits) # 결과: {'apple', 'orange', 'banana'} (중복 자동 삭제!)

# 새로운 값 추가/삭제
fruits.add("grape")
fruits.remove("orange")

3. 집합의 꽃: 교집합, 합집합, 차집합

여러 개의 데이터 뭉치를 비교할 때 집합은 엄청난 힘을 발휘합니다.

python_class = {"철수", "영희", "민수"}
java_class = {"민수", "길동", "수지"}

# 교집합: 두 수업을 모두 듣는 학생
print(python_class & java_class) # 결과: {'민수'}

# 합집합: 전체 학생 목록
print(python_class | java_class) # 결과: {'철수', '영희', '민수', '길동', '수지'}

# 차집합: 파이썬만 듣는 학생
print(python_class - java_class) # 결과: {'철수', '영희'}

💡 9일차 궁금증 해결 (Q&A)

Q1. 리스트, 튜플, 집합 중 무엇을 써야 할지 너무 헷갈려요!

구분리스트(List)튜플(Tuple)집합(Set)
기호[ ]( ){ }
특징자유로운 수정수정 불가(안전)중복 제거/연산

Q2. 리스트에서 중복된 값을 가장 빨리 지우는 방법은 무엇인가요?

A2. 집합(Set)을 빌려오면 됩니다! list(set(나의_리스트)) 처럼 리스트를 집합으로 바꿨다가 다시 리스트로 돌리면 한 줄 만에 중복이 사라집니다.

Q3. 튜플을 만들 때 my_t = (5) 라고 했더니 숫자로 인식돼요.

A3. 아, 정말 예리하시네요! 값이 하나인 튜플을 만들 때는 반드시 쉼표를 붙여야 합니다. my_t = (5,) 라고 써야 파이썬이 "아, 이건 튜플이구나!"라고 알아듣습니다.

오늘의 미션 🚩

"중복 제거기 프로젝트"
1. colors = ["red", "blue", "red", "green", "blue", "yellow"] 리스트를 만드세요.
2. 위 리스트에서 중복된 색상을 제거한 뒤,
3. "purple"을 추가하고 다시 리스트로 변환하여 출력해보세요!

댓글

이 블로그의 인기 게시물

초보 파이썬 따라하기: 7가지 실전 프로젝트로 매일 코딩 습관 만들기

조건문(if, elif, else) 배우기

초보자를 위한 Step-by-Step: 리스트와 인덱싱으로 값을 추가/삭제해 Python 기초 잡기