🤖

본 콘텐츠의 이미지 및 내용은 AI로 생성되었습니다.

⚠️

본 콘텐츠의 이미지 및 내용을 무단으로 복제, 배포, 수정하여 사용할 경우 저작권법에 의해 법적 제재를 받을 수 있습니다.

이미지 로딩 중...

Python 기본 문법 복습 완벽 가이드 - 슬라이드 1/7
A

AI Generated

2025. 12. 1. · 17 Views

Python 기본 문법 복습 완벽 가이드

Python 프로그래밍의 핵심 기초 문법을 체계적으로 정리합니다. 변수, 조건문, 함수부터 리스트 컴프리헨션과 예외 처리까지 실무에서 바로 활용할 수 있는 필수 지식을 담았습니다.


목차

  1. 변수와_자료형
  2. 조건문과_반복문
  3. 함수_정의와_호출
  4. 리스트_딕셔너리_튜플
  5. 리스트_컴프리헨션
  6. 예외_처리_기초

1. 변수와 자료형

신입 개발자 김개발 씨가 첫 Python 프로젝트를 시작했습니다. 데이터를 저장하고 활용해야 하는데, 어디서부터 시작해야 할지 막막합니다.

선배 박시니어 씨가 다가와 말합니다. "프로그래밍의 기초는 변수부터야.

데이터를 담는 그릇을 먼저 이해해야 해."

변수는 데이터를 저장하는 이름표가 붙은 상자입니다. Python에서는 변수를 선언할 때 자료형을 명시하지 않아도 됩니다.

마치 만능 상자처럼, 숫자든 문자든 무엇이든 담을 수 있습니다. 이러한 특성을 동적 타이핑이라고 부릅니다.

다음 코드를 살펴봅시다.

# 다양한 자료형의 변수 선언
name = "김개발"           # 문자열(str)
age = 25                  # 정수(int)
height = 175.5            # 실수(float)
is_developer = True       # 불리언(bool)

# 변수의 자료형 확인하기
print(type(name))         # <class 'str'>
print(type(age))          # <class 'int'>

# 변수 값 변경 (동적 타이핑)
data = 100                # 처음에는 정수
data = "백"               # 문자열로 변경 가능
print(data)               # 백

김개발 씨는 입사 첫날, 선배에게 Python의 기초부터 배우기로 했습니다. 가장 먼저 배운 것은 바로 변수였습니다.

"변수가 뭔가요?" 김개발 씨가 물었습니다. 박시니어 씨는 책상 위의 서랍을 가리키며 설명했습니다.

"저 서랍을 봐. 서랍마다 라벨이 붙어 있지?

'펜', '메모지', '클립'이라고. 변수도 마찬가지야.

데이터를 담는 상자에 이름표를 붙이는 거지." Python에서 변수를 만드는 방법은 놀랍도록 간단합니다. 그냥 이름을 정하고 등호를 쓴 다음 값을 넣으면 됩니다.

**name = "김개발"**이라고 쓰면, "김개발"이라는 문자열이 name이라는 상자에 담기는 것입니다. 다른 프로그래밍 언어에서는 변수를 만들 때 "이 상자에는 숫자만 담을 거야" 또는 "여기는 문자열 전용이야"라고 미리 선언해야 합니다.

하지만 Python은 다릅니다. Python의 변수는 마치 만능 상자와 같습니다.

처음에 숫자 100을 넣었다가, 나중에 문자열 "백"을 넣어도 아무 문제가 없습니다. 이것을 동적 타이핑이라고 부릅니다.

실행 시점에 자료형이 결정되기 때문입니다. Python에서 자주 사용하는 기본 자료형은 네 가지입니다.

정수를 담는 int, 소수점이 있는 숫자를 담는 float, 문자열을 담는 str, 그리고 참과 거짓을 담는 bool입니다. 변수에 어떤 자료형이 담겨 있는지 궁금하다면 type() 함수를 사용하면 됩니다.

type(age)를 출력하면 int라고 알려줍니다. 이 함수는 디버깅할 때 매우 유용합니다.

실무에서는 변수 이름을 지을 때 규칙이 있습니다. 의미 있는 이름을 사용하고, 여러 단어를 조합할 때는 밑줄로 연결합니다.

user_name, total_count처럼 말입니다. 이것을 스네이크 케이스라고 부릅니다.

주의할 점도 있습니다. 변수 이름은 숫자로 시작할 수 없고, Python의 예약어(if, for, while 등)는 변수 이름으로 사용할 수 없습니다.

김개발 씨가 고개를 끄덕였습니다. "생각보다 간단하네요!" 박시니어 씨가 웃으며 말했습니다.

"맞아. 하지만 간단하다고 대충 쓰면 안 돼.

좋은 변수 이름은 코드를 읽기 쉽게 만들어주거든."

실전 팁

💡 - 변수 이름은 의미를 담아 짓고, 스네이크 케이스(user_name)를 사용하세요

  • type() 함수로 변수의 자료형을 확인하는 습관을 들이세요

2. 조건문과 반복문

김개발 씨에게 첫 번째 과제가 주어졌습니다. 회원 등급에 따라 다른 할인율을 적용하는 기능을 만들어야 합니다.

"모든 경우를 일일이 코드로 작성해야 하나요?" 김개발 씨의 질문에 박시니어 씨가 답합니다. "조건문과 반복문을 쓰면 돼.

프로그램의 흐름을 제어하는 핵심이지."

조건문은 특정 조건에 따라 다른 코드를 실행하게 해주는 분기점입니다. 반복문은 같은 작업을 여러 번 수행할 때 사용합니다.

이 두 가지는 마치 도로의 교차로와 회전교차로처럼, 프로그램의 흐름을 원하는 방향으로 이끌어줍니다.

다음 코드를 살펴봅시다.

# 조건문: 회원 등급별 할인율 적용
grade = "gold"
price = 10000

if grade == "vip":
    discount = 0.2          # VIP는 20% 할인
elif grade == "gold":
    discount = 0.1          # Gold는 10% 할인
else:
    discount = 0            # 일반 회원은 할인 없음

final_price = price * (1 - discount)
print(f"최종 가격: {final_price}원")  # 9000.0원

# 반복문: 1부터 5까지 출력
for i in range(1, 6):
    print(f"현재 숫자: {i}")

김개발 씨는 회원 등급 시스템을 구현해야 했습니다. VIP 회원은 20% 할인, Gold 회원은 10% 할인, 일반 회원은 할인 없음.

이런 분기 처리를 어떻게 해야 할까요? 박시니어 씨가 설명을 시작했습니다.

"길을 가다가 갈림길을 만났다고 생각해봐. 왼쪽으로 가면 공원, 오른쪽으로 가면 도서관이야.

조건문도 마찬가지야." Python의 조건문은 if, elif, else 세 가지 키워드로 구성됩니다. if는 "만약 ~라면"이라는 뜻이고, elif는 "그렇지 않고 만약 ~라면", else는 "그 외의 모든 경우"를 의미합니다.

중요한 점이 있습니다. Python에서는 들여쓰기가 문법의 일부입니다.

다른 언어에서는 중괄호로 코드 블록을 구분하지만, Python은 들여쓰기로 구분합니다. 보통 스페이스 4칸을 사용합니다.

조건문에서 비교 연산자도 알아야 합니다. **==**는 같음, **!=**는 다름, **>**와 **<**는 크거나 작음을 비교합니다.

또한 and, or, not으로 여러 조건을 조합할 수 있습니다. 이제 반복문 이야기를 해봅시다.

만약 "안녕하세요"를 100번 출력해야 한다면 어떻게 할까요? print문을 100번 쓰는 건 미친 짓입니다.

for문은 정해진 횟수만큼 반복할 때 사용합니다. range(1, 6)은 1부터 5까지의 숫자를 차례로 만들어줍니다.

끝 숫자는 포함되지 않는다는 점을 기억하세요. while문은 조건이 참인 동안 계속 반복합니다.

언제 끝날지 모르는 상황에서 유용합니다. 예를 들어 사용자가 "종료"를 입력할 때까지 계속 입력받는 프로그램에서 사용됩니다.

주의할 점이 있습니다. while문에서 조건이 영원히 참이면 무한 루프에 빠집니다.

프로그램이 멈추지 않고 계속 돌아가는 것입니다. 반드시 루프를 빠져나갈 조건을 만들어야 합니다.

반복문 안에서 break를 만나면 즉시 반복을 중단하고 빠져나옵니다. continue를 만나면 현재 반복을 건너뛰고 다음 반복으로 넘어갑니다.

김개발 씨가 코드를 완성했습니다. 회원 등급별 할인 로직이 깔끔하게 동작했습니다.

"이제 어떤 조건이든 처리할 수 있겠어요!"

실전 팁

💡 - Python은 들여쓰기가 문법이므로 일관되게 스페이스 4칸을 사용하세요

  • while문을 사용할 때는 반드시 탈출 조건을 확인하세요

3. 함수 정의와 호출

프로젝트가 진행되면서 김개발 씨의 코드는 점점 길어졌습니다. 비슷한 코드가 여러 곳에서 반복되고 있었습니다.

코드 리뷰 시간, 박시니어 씨가 지적했습니다. "이 할인 계산 로직이 세 군데나 중복되어 있네.

함수로 만들어야지."

함수는 특정 작업을 수행하는 코드 묶음에 이름을 붙인 것입니다. 마치 요리 레시피처럼, 한 번 정의해두면 필요할 때마다 이름만 부르면 됩니다.

함수를 사용하면 코드 중복을 줄이고, 유지보수를 쉽게 만들어줍니다.

다음 코드를 살펴봅시다.

# 함수 정의: def 키워드 사용
def calculate_discount(price, grade):
    """회원 등급에 따른 할인가 계산"""
    discount_rates = {"vip": 0.2, "gold": 0.1, "silver": 0.05}
    rate = discount_rates.get(grade, 0)  # 없는 등급은 0
    return price * (1 - rate)

# 함수 호출
original = 50000
final = calculate_discount(original, "gold")
print(f"할인 적용가: {final}원")  # 45000.0원

# 기본값 매개변수 활용
def greet(name, message="안녕하세요"):
    return f"{message}, {name}님!"

print(greet("김개발"))              # 안녕하세요, 김개발님!
print(greet("박시니어", "반갑습니다"))  # 반갑습니다, 박시니어님!

김개발 씨의 코드에는 문제가 있었습니다. 할인 계산 로직이 주문 페이지, 장바구니 페이지, 결제 페이지 세 곳에 똑같이 들어가 있었던 것입니다.

"만약 할인 정책이 바뀌면 어떻게 될까?" 박시니어 씨가 물었습니다. 김개발 씨는 당황했습니다.

"세 곳을 다 수정해야겠네요... 하나라도 빠뜨리면 버그가 생기겠군요." 바로 이런 문제를 해결하기 위해 함수가 존재합니다.

함수는 자주 사용하는 코드를 하나로 묶어서 이름을 붙인 것입니다. 마치 요리사가 자주 쓰는 소스 레시피를 따로 정리해두는 것과 같습니다.

Python에서 함수를 만들 때는 def 키워드를 사용합니다. def는 define(정의하다)의 줄임말입니다.

함수 이름을 쓰고, 괄호 안에 받을 값들을 나열한 다음, 콜론을 붙입니다. 함수에 전달하는 값을 매개변수 또는 인자라고 부릅니다.

calculate_discount 함수는 price와 grade라는 두 개의 매개변수를 받습니다. 이 값들을 가지고 내부에서 계산을 수행합니다.

함수가 작업을 마친 후 결과를 돌려주려면 return 키워드를 사용합니다. return을 만나면 함수는 즉시 종료되고, return 뒤의 값이 호출한 곳으로 전달됩니다.

매개변수에는 기본값을 지정할 수 있습니다. greet 함수에서 message="안녕하세요"라고 쓰면, 호출할 때 message를 생략해도 "안녕하세요"가 기본으로 사용됩니다.

함수 이름 바로 아래에 큰따옴표 세 개로 감싼 문자열을 독스트링이라고 합니다. 함수가 무슨 일을 하는지 설명하는 주석입니다.

나중에 다른 개발자가 코드를 볼 때 큰 도움이 됩니다. 함수를 잘 만들면 코드가 레고 블록처럼 됩니다.

각 블록은 하나의 역할만 담당하고, 이 블록들을 조합해서 복잡한 프로그램을 만드는 것입니다. 좋은 함수의 조건이 있습니다.

하나의 함수는 하나의 일만 해야 합니다. 이름만 보고도 무슨 일을 하는지 알 수 있어야 합니다.

그리고 너무 길지 않아야 합니다. 김개발 씨는 중복된 코드를 함수로 묶었습니다.

이제 할인 정책이 바뀌어도 함수 하나만 수정하면 됩니다. "코드가 훨씬 깔끔해졌어요!"

실전 팁

💡 - 하나의 함수는 하나의 역할만 담당하도록 설계하세요

  • 함수 이름은 동사로 시작하여 무슨 일을 하는지 명확히 표현하세요

4. 리스트 딕셔너리 튜플

김개발 씨가 회원 목록을 관리하는 기능을 만들고 있습니다. 회원이 100명이라면 변수를 100개 만들어야 할까요?

"그건 말도 안 되지." 박시니어 씨가 웃으며 말합니다. "여러 데이터를 담을 수 있는 자료구조를 배워야 할 때가 됐어."

리스트, 딕셔너리, 튜플은 Python의 핵심 자료구조입니다. 리스트는 순서가 있는 데이터 모음, 딕셔너리는 키와 값의 쌍으로 이루어진 데이터 모음, 튜플은 변경할 수 없는 리스트입니다.

각각의 특성을 이해하면 상황에 맞는 최적의 선택을 할 수 있습니다.

다음 코드를 살펴봅시다.

# 리스트: 순서가 있는 변경 가능한 모음
members = ["김개발", "박시니어", "이주니어"]
members.append("최인턴")        # 끝에 추가
print(members[0])               # 김개발 (인덱스 0부터 시작)

# 딕셔너리: 키-값 쌍의 모음
user = {
    "name": "김개발",
    "age": 25,
    "grade": "gold"
}
print(user["name"])             # 김개발
user["email"] = "kim@test.com"  # 새 키-값 추가

# 튜플: 변경 불가능한 모음
coordinates = (37.5665, 126.9780)  # 서울 좌표
lat, lng = coordinates          # 언패킹
print(f"위도: {lat}, 경도: {lng}")

김개발 씨는 고민에 빠졌습니다. 회원 정보를 저장해야 하는데, 회원 한 명당 변수 하나씩 만들 수는 없는 노릇이었습니다.

박시니어 씨가 설명을 시작했습니다. "서랍장을 생각해봐.

서랍 하나하나가 변수라면, 서랍장 전체는 자료구조야." 먼저 리스트입니다. 대괄호 []로 만들고, 여러 값을 순서대로 담을 수 있습니다.

마치 줄을 서 있는 사람들처럼, 첫 번째, 두 번째, 세 번째... 순서가 있습니다.

리스트의 각 요소에 접근할 때는 인덱스를 사용합니다. 주의할 점은 인덱스가 0부터 시작한다는 것입니다.

members[0]은 첫 번째 요소, members[1]은 두 번째 요소입니다. 리스트는 변경 가능합니다.

append()로 끝에 추가하고, remove()로 삭제하고, 특정 위치의 값을 바꿀 수도 있습니다. 이런 유연함이 리스트의 강점입니다.

다음은 딕셔너리입니다. 중괄호 {}로 만들고, 키와 값의 쌍으로 데이터를 저장합니다.

마치 실제 사전처럼, 단어(키)를 찾으면 뜻(값)이 나오는 구조입니다. 딕셔너리의 강점은 검색 속도입니다.

리스트에서 특정 값을 찾으려면 처음부터 하나씩 확인해야 합니다. 하지만 딕셔너리는 키만 알면 바로 값을 찾을 수 있습니다.

회원 정보를 저장할 때 딕셔너리가 적합합니다. user["name"]으로 이름을, user["age"]로 나이를 바로 가져올 수 있으니까요.

인덱스 번호를 기억할 필요가 없습니다. 마지막으로 튜플입니다.

소괄호 ()로 만들고, 리스트와 비슷하지만 결정적인 차이가 있습니다. 한 번 만들면 변경할 수 없습니다.

왜 변경 불가능한 자료구조가 필요할까요? 좌표나 RGB 색상값처럼 절대로 바뀌면 안 되는 데이터가 있기 때문입니다.

실수로 값을 바꾸는 것을 방지해줍니다. 튜플의 또 다른 장점은 언패킹입니다.

coordinates = (37.5665, 126.9780)을 lat, lng = coordinates로 한 번에 풀어낼 수 있습니다. 함수에서 여러 값을 반환할 때 자주 사용됩니다.

김개발 씨가 정리했습니다. "순서가 중요하고 자주 변경되면 리스트, 키로 빠르게 찾아야 하면 딕셔너리, 변경되면 안 되는 값은 튜플이군요!"

실전 팁

💡 - 리스트 인덱스는 0부터 시작하며, 음수 인덱스(-1)는 끝에서부터 셉니다

  • 딕셔너리의 get() 메서드를 사용하면 키가 없을 때 에러 대신 기본값을 반환합니다

5. 리스트 컴프리헨션

코드 리뷰 시간, 박시니어 씨가 김개발 씨의 코드를 보더니 말했습니다. "이 for문, 다섯 줄이나 되네.

한 줄로 줄일 수 있어." 김개발 씨는 의아했습니다. "다섯 줄을 어떻게 한 줄로요?" 박시니어 씨가 미소를 지었습니다.

"리스트 컴프리헨션을 알면 가능해."

리스트 컴프리헨션은 리스트를 간결하게 생성하는 Python만의 특별한 문법입니다. 마치 수학의 집합 표기법처럼, 조건과 변환을 한 줄에 표현할 수 있습니다.

코드가 짧아지고, Python다운 코드를 작성할 수 있게 해줍니다.

다음 코드를 살펴봅시다.

# 기존 방식: for문으로 리스트 생성
numbers = [1, 2, 3, 4, 5]
squares = []
for n in numbers:
    squares.append(n ** 2)

# 리스트 컴프리헨션: 한 줄로 표현
squares = [n ** 2 for n in numbers]
print(squares)  # [1, 4, 9, 16, 25]

# 조건 추가: 짝수만 제곱
even_squares = [n ** 2 for n in numbers if n % 2 == 0]
print(even_squares)  # [4, 16]

# 실무 예제: 문자열 리스트 변환
names = ["  kim  ", "PARK", "lee  "]
cleaned = [name.strip().lower() for name in names]
print(cleaned)  # ['kim', 'park', 'lee']

김개발 씨는 사용자 입력 데이터를 정리하는 코드를 작성하고 있었습니다. 공백을 제거하고, 소문자로 통일하는 작업이었습니다.

빈 리스트를 만들고, for문을 돌리고, append로 추가하고... 코드가 다섯 줄이나 되었습니다.

"이걸 한 줄로?" 김개발 씨는 믿기지 않았습니다. 박시니어 씨가 키보드를 가져와 타이핑했습니다.

[name.strip().lower() for name in names]. 정말 한 줄이었습니다.

리스트 컴프리헨션은 Python의 자랑거리 중 하나입니다. 다른 언어에서는 여러 줄이 필요한 작업을, Python에서는 한 줄로 우아하게 표현할 수 있습니다.

기본 구조는 **[표현식 for 변수 in 반복가능객체]**입니다. 대괄호 안에 for문이 들어가 있는 모습입니다.

각 요소에 표현식을 적용한 결과로 새 리스트를 만듭니다. 조건을 추가할 수도 있습니다.

if를 뒤에 붙이면 조건을 만족하는 요소만 포함됩니다. [n ** 2 for n in numbers if n % 2 == 0]은 짝수만 골라서 제곱합니다.

수학의 집합 표기법과 비슷합니다. {x^2 | x in N, x는 짝수}를 Python으로 옮긴 것과 같습니다.

수학을 좋아하는 개발자들이 Python을 좋아하는 이유 중 하나입니다. 실무에서 리스트 컴프리헨션은 정말 자주 사용됩니다.

데이터 정제, 필터링, 변환 작업에서 빛을 발합니다. API 응답에서 특정 필드만 추출하거나, 파일 목록에서 특정 확장자만 걸러낼 때 유용합니다.

하지만 주의할 점도 있습니다. 너무 복잡한 로직을 한 줄에 욱여넣으면 오히려 가독성이 떨어집니다.

조건이 두 개 이상이거나, 중첩 반복이 필요하면 일반 for문이 나을 수 있습니다. 또한 리스트 컴프리헨션은 결과를 메모리에 모두 저장합니다.

만약 천만 개의 데이터를 처리해야 한다면, 제너레이터 표현식을 사용하는 것이 좋습니다. 소괄호를 쓰면 됩니다.

(x for x in data)처럼요. 김개발 씨는 자신의 코드를 리스트 컴프리헨션으로 바꿔보았습니다.

다섯 줄이 한 줄로 줄었습니다. "이게 바로 Python다운 코드군요!" 박시니어 씨가 고개를 끄덕였습니다.

"맞아. 이걸 Pythonic하다고 표현해."

실전 팁

💡 - 한 줄이 80자를 넘으면 가독성을 위해 일반 for문을 고려하세요

  • 대용량 데이터에는 리스트 컴프리헨션 대신 제너레이터 표현식을 사용하세요

6. 예외 처리 기초

김개발 씨가 만든 프로그램이 갑자기 멈췄습니다. 사용자가 숫자를 입력해야 하는 곳에 문자를 입력한 것입니다.

"프로그램이 죽어버렸어요!" 박시니어 씨가 침착하게 말합니다. "예외 처리를 안 해서 그래.

에러가 발생해도 프로그램이 죽지 않게 만들어야지."

예외 처리는 프로그램 실행 중 발생하는 오류를 우아하게 처리하는 방법입니다. 마치 자동차의 에어백처럼, 예상치 못한 충돌에서 프로그램을 보호합니다.

try-except 구문을 사용하면 에러가 발생해도 프로그램이 중단되지 않고 계속 실행됩니다.

다음 코드를 살펴봅시다.

# 기본 예외 처리 구조
def divide(a, b):
    try:
        result = a / b
        return result
    except ZeroDivisionError:
        print("0으로 나눌 수 없습니다")
        return None
    except TypeError:
        print("숫자만 입력해주세요")
        return None
    finally:
        print("연산 시도 완료")  # 항상 실행

# 테스트
print(divide(10, 2))   # 5.0
print(divide(10, 0))   # 0으로 나눌 수 없습니다, None

# 실무 예제: 사용자 입력 처리
def get_user_age():
    while True:
        try:
            age = int(input("나이를 입력하세요: "))
            if age < 0:
                raise ValueError("나이는 음수일 수 없습니다")
            return age
        except ValueError as e:
            print(f"올바른 값을 입력하세요: {e}")

김개발 씨는 난감한 상황에 빠졌습니다. 열심히 만든 프로그램이 사용자의 잘못된 입력 하나에 맥없이 쓰러진 것입니다.

화면에는 빨간 글씨로 에러 메시지가 가득했습니다. "프로그램이 이렇게 쉽게 죽으면 안 되지." 박시니어 씨가 말했습니다.

현실 세계에서는 예상치 못한 일이 항상 일어납니다. 사용자는 숫자를 넣어야 하는 곳에 문자를 넣고, 파일은 갑자기 사라지고, 네트워크는 불안정합니다.

이런 상황에 대비하는 것이 예외 처리입니다. Python의 예외 처리는 try-except 구문을 사용합니다.

try 블록 안에는 에러가 발생할 수 있는 코드를 넣고, except 블록에는 에러가 발생했을 때 실행할 코드를 넣습니다. 마치 놀이기구의 안전바와 같습니다.

평소에는 아무 역할을 하지 않지만, 문제가 생겼을 때 탑승자를 보호합니다. 예외 처리도 마찬가지로, 에러가 발생했을 때 프로그램을 보호합니다.

Python에는 다양한 종류의 예외가 있습니다. ZeroDivisionError는 0으로 나눌 때, TypeError는 자료형이 맞지 않을 때, ValueError는 값이 올바르지 않을 때 발생합니다.

여러 종류의 예외를 다르게 처리할 수 있습니다. except를 여러 개 써서, 각 예외에 맞는 메시지나 동작을 지정할 수 있습니다.

구체적인 예외부터 처리하는 것이 좋은 습관입니다. finally 블록은 특별합니다.

에러가 발생하든 안 하든, 무조건 실행됩니다. 파일을 열었으면 닫고, 데이터베이스 연결을 열었으면 끊는 등의 정리 작업에 사용합니다.

raise 키워드를 사용하면 직접 예외를 발생시킬 수 있습니다. 나이가 음수로 입력되면 논리적으로 말이 안 되므로, ValueError를 발생시켜 처리하는 것입니다.

주의할 점이 있습니다. 모든 예외를 뭉뚱그려 처리하면 안 됩니다.

except: 만 쓰면 모든 예외를 잡지만, 어떤 에러가 발생했는지 알 수 없어 디버깅이 어려워집니다. 또한 예외 처리는 정상적인 프로그램 흐름을 제어하는 데 사용하면 안 됩니다.

if문으로 처리할 수 있는 상황에 예외를 사용하는 것은 좋지 않은 습관입니다. 김개발 씨는 사용자 입력 부분에 예외 처리를 추가했습니다.

이제 잘못된 입력이 들어와도 프로그램은 죽지 않고, 다시 입력을 요청합니다. "이제 프로그램이 훨씬 튼튼해졌어요!"

실전 팁

💡 - 예외는 구체적인 것부터 처리하고, 포괄적인 except는 피하세요

  • finally 블록에서 파일이나 연결 등의 리소스를 정리하는 습관을 들이세요

이상으로 학습을 마칩니다. 위 내용을 직접 코드로 작성해보면서 익혀보세요!

#Python#Variables#Functions#DataStructures#ExceptionHandling#Python,Basics

댓글 (0)

댓글을 작성하려면 로그인이 필요합니다.