파이썬 변수 자료형부터 예외 처리까지 핵심 기초 배우기

이 글은 파이썬 코딩의 5가지 핵심 기둥을 다룹니다. 변수와 자료형의 기초부터 시작하여 프로그램의 흐름을 제어하는 조건문과 반복문, 코드의 재사용성을 높이는 함수 사용법, 여러 데이터를 효율적으로 관리하는 리스트와 딕셔너리, 그리고 프로그램의 안정성을 보장하는 예외 처리까지 초보자가 반드시 알아야 할 필수 개념을 배웁니다.

목차

만약 파이썬으로 만들고 싶은 멋진 프로그램이 있다면, 그 시작은 어디일까요? 데이터 분석, 웹 개발, 업무 자동화 등 모든 위대한 여정은 첫걸음에서 시작됩니다. 바로 파이썬의 가장 기본적인 ‘언어’를 배우는 것이죠. 그 모든 과정의 가장 단단한 첫 주춧돌은 바로 파이썬 변수 자료형을 이해하는 것입니다. 이 글은 여러분이 파이썬의 핵심 뼈대를 단단히 세울 수 있도록 돕는 완벽한 가이드가 될 것입니다.

이 글 하나만으로 여러분은 파이썬의 5가지 핵심 기둥인 파이썬 변수 자료형, 파이썬 조건문 반복문, 파이썬 함수 사용법, 파이썬 리스트 딕셔너리, 그리고 파이썬 예외 처리까지, 코딩의 기초 체력을 기르는 데 필요한 모든 것을 배우게 될 것입니다.

1. 모든 데이터의 시작: 파이썬 변수 자료형

변수(Variable)란 무엇인가?

변수는 데이터에 ‘이름표’를 붙여 저장하는 공간입니다. 마치 ‘나이’라는 이름표를 붙인 상자에 숫자 30을 넣어두는 것과 같습니다. 이렇게 하면 나중에 ‘나이’라는 이름만 불러오면 그 안의 값인 30을 쉽게 사용할 수 있습니다. 파이썬에서는 변수를 만들 때 어떤 종류의 데이터를 담을지 미리 정하지 않아도 되어 코드가 매우 간결합니다.

my_age = 30
my_name = "홍길동"
print(my_name) # 결과: 홍길동

파이썬의 핵심 자료형(Data Types) 소개

파이썬은 똑똑하게도 변수에 어떤 값이 할당되는 순간 그 값의 종류, 즉 ‘자료형’을 스스로 결정합니다. 이를 ‘동적 타이핑(Dynamic Typing)’이라고 부릅니다. 코드를 유연하고 빠르게 작성할 수 있지만, 예상치 못한 타입 관련 오류가 발생할 수 있어 데이터의 종류를 명확히 이해하는 것이 중요합니다. 이는 비전공자를 위한 파이썬 독학 로드맵에서도 가장 먼저 강조하는 부분이기도 합니다.

구분 장점 단점
동적 타이핑 코드가 간결하고 유연하며, 개발 속도가 빠릅니다. 실행 시점에 타입 오류가 발견될 수 있고, 대규모 프로젝트에서는 관리가 어려울 수 있습니다.
  • 숫자형 (Numeric Types): 수학에서 사용하는 숫자들을 다룹니다.
    • 정수(Integer, int): 소수점이 없는 숫자 (예: 10, -5, 0)
    • 실수(Float, float): 소수점이 있는 숫자 (예: 3.14, -0.5)
  • 문자열 (String, str): 따옴표('')나 쌍따옴표("")로 감싸진 모든 텍스트 데이터를 의미합니다. 최신 파이썬에서는 f-string을 사용하면 문자열과 변수를 매우 편리하게 조합할 수 있습니다.
my_name = "김파이"
print(f"안녕하세요, 제 이름은 {my_name}입니다.")
  • 불리언 (Boolean, bool): 논리적인 참(True)과 거짓(False)을 나타내는 값입니다. 주로 조건문에서 어떤 상황이 맞는지 틀리는지 판단하는 기준으로 사용됩니다.

내 데이터의 종류 확인하기 (type() 함수)

type() 함수를 사용하면 어떤 변수가 어떤 자료형에 속하는지 직접 눈으로 확인할 수 있습니다. 파이썬 공식 문서에서도 모든 데이터가 타입을 가지며 type()으로 확인 가능함을 명시합니다. 코딩 초보 시절, 데이터의 형태를 파악하는 데 매우 유용한 도구입니다.

num = 100
pi = 3.14
message = "Hello Python"
is_true = True

print(f"'num'의 자료형은: {type(num)}") # <class 'int'>
print(f"'pi'의 자료형은: {type(pi)}") # <class 'float'>
print(f"'message'의 자료형은: {type(message)}") # <class 'str'>
print(f"'is_true'의 자료형은: {type(is_true)}") # <class 'bool'>
파이썬 변수와 자료형을 설명하는 컴퓨터 화면과 책상 환경의 실사 이미지

2. 프로그램에 논리를 더하다: 파이썬 조건문 반복문

조건에 따라 움직이는 코드: 조건문 (if, elif, else)

‘만약 오늘 날씨가 맑다면, 소풍을 간다. 그렇지 않고 비가 온다면, 집에서 영화를 본다’와 같이 조건에 따라 행동을 결정하는 것이 바로 조건문입니다. 파이썬에서는 if, elif, else 키워드를 사용하여 프로그램의 흐름을 제어하고, 다양한 상황에 대처하는 논리적인 코드를 작성할 수 있습니다.

  • if: 조건을 확인하고, 참(True)일 때만 아래 코드를 실행합니다.
  • elif: if 조건이 거짓일 때, 또 다른 조건을 확인합니다.
  • else: 위의 모든 조건(if, elif)이 거짓일 때 실행됩니다.

체계적인 프로그래밍 학습 과정에서는 자료형을 배운 후, 이처럼 프로그램의 흐름을 제어하는 제어문을 다루는 것이 일반적입니다.

# 학점 계산기 예시
score = 85
if score >= 90:
    print("A 학점입니다.")
elif score >= 80:
    print("B 학점입니다.")
else:
    print("C 학점 이하입니다.")

단순 작업을 자동화하는 기술: 반복문 (for, while)

반복문은 컴퓨터가 가장 잘하는 일, 즉 단순 반복 작업을 자동화하는 강력한 도구입니다. 이를 통해 개발자는 반복적인 코드 작성을 피하고 더 중요한 문제 해결에 집중할 수 있습니다.

  • for 반복문: 리스트, 문자열처럼 여러 개의 요소가 담긴 자료를 처음부터 끝까지 순서대로 한 번씩 방문하며 코드를 실행할 때 사용합니다. range() 함수와 함께 쓰면 원하는 횟수만큼 코드를 반복하기 편리합니다.
for i in range(5): # 0부터 4까지 5번 반복
    print(f"{i+1}번째 인사: 안녕하세요!")
  • while 반복문: 특정 조건이 참(True)인 ‘동안’ 코드를 계속해서 반복합니다. 조건이 거짓(False)이 되는 순간 반복을 멈춥니다. 잘못 사용하면 ‘무한 루프’에 빠질 수 있으므로 종료 조건을 명확히 해야 합니다.
count = 0
while count < 3:
    print(f"현재 카운트: {count}")
    count = count + 1
  • 반복문 제어 (break, continue): 때로는 반복 흐름을 미세하게 조정해야 합니다.
    • break: 반복문을 즉시 탈출합니다.
    • continue: 현재 반복을 건너뛰고 다음 반복으로 넘어갑니다.
파이썬 조건문과 반복문을 보여주는 흐름도와 코드가 포함된 컴퓨터 화면 이미지

3. 코드의 재사용과 정리: 파이썬 함수 사용법

함수(Function)를 왜 사용해야 하는가?

함수는 특정 작업을 수행하는 코드 덩어리에 이름을 붙여놓은 ‘미니 프로그램’입니다. 코드를 반복해서 작성할 필요 없이, 필요할 때마다 이름만 불러서 사용할 수 있어 매우 효율적입니다. 이는 “반복하지 말라(Don’t Repeat Yourself)”는 프로그래밍의 중요 원칙인 DRY 원칙을 실천하는 핵심적인 방법으로, 파이썬 공부 효율을 높이는 법에서도 강조되는 코드의 유지보수성과 가독성을 크게 향상시킵니다.

함수 정의(def)와 호출(Call)

def 키워드를 사용해 함수를 정의(생성)하고, 함수이름() 형태로 호출(사용)합니다. 함수를 잘게 나누어 정의하면, 복잡한 문제도 여러 개의 간단한 문제로 나누어 해결할 수 있어 전체적인 프로그램 구조가 명확해집니다.

데이터 주고받기: 매개변수(Parameter)와 반환값(Return)

함수는 데이터를 받아 처리하고 결과를 돌려주는 상호작용을 합니다. 파이썬 공식 문서에서도 함수의 정의와 호출, 그리고 데이터를 전달하는 방식을 명확히 구분하여 설명하고 있습니다.

  • 매개변수(Parameter): 함수에 일을 시킬 때 필요한 재료(데이터)를 전달하는 통로입니다.
  • 반환값(Return): 함수가 일을 마친 후, 그 결과를 돌려주는 값입니다. return 키워드를 사용합니다.
# 함수 정의 (a와 b라는 두 개의 매개변수를 받음)
def add(a, b):
    result = a + b
    return result # 결과값을 반환

# 함수 호출 (10과 5라는 인자(argument)를 전달)
sum_result = add(10, 5)
print(f"두 수의 합은: {sum_result}") # 결과: 15
파이썬 함수 정의와 호출을 설명하는 코딩 화면과 책상이 포함된 실사 이미지

4. 여러 데이터를 효율적으로 관리하기: 파이썬 리스트 딕셔너리

순서가 있는 데이터 묶음: 리스트 (List)

리스트는 여러 데이터를 [](대괄호) 안에 순서대로 저장하는 자료구조입니다. 쇼핑 목록처럼 순서가 중요하고, 항목을 추가하거나 뺄 수 있는 유연한 데이터 관리에 사용됩니다. 리스트는 파이썬에서 가장 기본적이면서도 널리 사용되는 데이터 구조로, 다양한 데이터를 순차적으로 처리하는 데 필수적입니다.

  • 핵심 기능:
    • 인덱싱(Indexing): my_list[0]처럼 번호표(인덱스)로 특정 위치의 요소에 접근합니다. (0부터 시작)
    • 슬라이싱(Slicing): my_list[1:3]처럼 범위를 지정해 여러 요소를 한 번에 잘라냅니다.
    • 메소드: append()로 맨 뒤에 요소를 추가하고, pop()으로 요소를 제거하는 등 다양한 내장 함수를 제공합니다.
fruits = ["사과", "바나나", "딸기"]
fruits.append("오렌지")
print(fruits[1]) # 결과: 바나나
print(fruits) # 결과: ['사과', '바나나', '딸기', '오렌지']

의미를 가진 데이터 묶음: 딕셔너리 (Dictionary)

딕셔너리는 ‘Key-Value’가 하나의 쌍으로 묶인 데이터를 {}(중괄호) 안에 저장합니다. 순서가 아닌 고유한 ‘이름표(Key)’로 데이터를 빠르고 정확하게 찾아올 때 사용합니다. 이는 마치 사전에서 단어를 찾아 뜻을 확인하는 것처럼, 데이터에 의미를 부여하고 효율적으로 검색하는 데 최적화되어 있습니다.

  • 핵심 기능:
    • my_dict['key'] 형태로 키를 사용해 값에 접근합니다.
    • my_dict['new_key'] = 'new_value' 형태로 새로운 쌍을 추가하거나 기존 값을 수정합니다.
person = {
    "이름": "홍길동",
    "나이": 30,
    "직업": "개발자"
}
print(f"{person['이름']}의 직업은 {person['직업']}입니다.")

언제 무엇을 써야 할까?

올바른 자료구조 선택은 효율적인 프로그래밍의 첫걸음입니다. 데이터의 특성과 사용 목적에 따라 리스트와 딕셔너리 중 더 적합한 것을 선택해야 합니다.

자료구조 특징 사용 예시
리스트(List) 데이터의 순서가 중요하고, 중복이 허용될 때 월별 매출 기록, 시험 성적 목록, 실행 작업 순서
딕셔너리(Dictionary) 각 데이터가 고유한 이름(Key)을 가지고 값을 찾을 때 한 사람의 인적 정보, 상품의 속성, 설정 값 저장
파이썬 리스트와 딕셔너리 자료구조를 비교하는 컴퓨터 화면과 책상 이미지

5. 예상치 못한 오류에 대비하기: 파이썬 예외 처리

예외(Exception)란 무엇인가?

잘 만들어진 프로그램이라도 사용자의 잘못된 입력이나 예측 불가능한 상황으로 인해 오류가 발생할 수 있습니다. 이런 실행 시간 오류를 ‘예외’라고 부릅니다. 파이썬 예외 처리는 이런 예외 상황을 위한 ‘응급처치’ 계획을 세우는 것으로, 프로그램이 갑자기 멈추는 것을 막고 안정적으로 계속 실행되도록 보장하는 중요한 기법입니다.

오류를 잡는 그물: try-except 기본 문법

오류가 발생할 가능성이 있는 코드를 try 블록 안에 넣고, 만약 오류가 발생했을 때 실행할 코드를 except 블록 안에 작성합니다. 이렇게 하면 오류가 발생해도 프로그램이 멈추지 않고 except 블록의 코드를 실행한 후 다음으로 넘어갑니다. 이는 공식 문서와 여러 가이드에서 강조하는 예외 처리의 가장 기본적이고 핵심적인 방법이며, 코딩 문제 해결을 위한 오류 분석의 첫걸음입니다.

실용적인 예시

  • ValueError 처리: 사용자가 숫자를 입력해야 할 곳에 문자를 입력했을 때 발생하는 오류를 처리합니다.
try:
    user_input = input("숫자를 입력하세요: ")
    number = int(user_input)
    print(f"입력한 숫자는 {number}입니다.")
except ValueError:
    print("잘못된 입력입니다. 숫자만 입력해주세요.")
  • ZeroDivisionError 처리: 어떤 숫자를 0으로 나누려고 할 때 발생하는 수학적 오류를 처리합니다.
try:
    result = 10 / 0
    print(result)
except ZeroDivisionError:
    print("오류: 0으로 나눌 수 없습니다.")

적절한 예외 처리는 프로그램의 안정성을 높이고 사용자 경험을 향상시키는 전문가의 필수 습관입니다. 예상치 못한 상황에 대비하는 코드를 작성함으로써, 사용자는 오류 메시지 대신 친절한 안내를 받게 되며 프로그램은 더욱 신뢰성을 얻게 됩니다.

파이썬 예외 처리 코드와 경고 아이콘이 있는 컴퓨터 화면과 조용한 작업 공간 이미지

결론

파이썬 변수 자료형의 기초부터 시작해, 프로그램에 논리를 부여하는 파이썬 조건문 반복문, 코드의 재사용성을 높이는 파이썬 함수 사용법, 데이터를 효율적으로 관리하는 파이썬 리스트 딕셔너리, 그리고 프로그램의 안정성을 더하는 파이썬 예외 처리까지 살펴보았습니다. 이 5가지 개념은 파이썬이라는 언어의 척추와 같습니다. 이 핵심 개념들은 단순히 문법을 아는 것을 넘어, 프로그래밍 방식으로 사고하는 능력의 기초를 이룹니다.

이제 이론을 여러분의 것으로 만들 시간입니다. 오늘 배운 개념들을 조합하여 간단한 ‘숫자 맞추기 게임’이나 ‘기본 계산기 프로그램’을 직접 만들어보세요. 작은 성공이 큰 동기부여가 될 것입니다. 코딩은 지식을 행동으로 옮길 때 비로소 진정한 실력이 됩니다.

이 기초를 단단히 다졌다면, 다음 단계로는 ‘모듈과 패키지’를 활용해 다른 사람의 코드를 가져와 사용하거나, ‘객체 지향 프로그래밍(클래스)’을 통해 더 체계적으로 프로그램을 설계하는 방법을 학습해보는 것을 추천합니다. 꾸준한 학습과 실습을 통해 여러분의 코딩 여정을 계속 이어나가시길 바랍니다.

자주 묻는 질문 (FAQ)

Q1: 파이썬이 초보자에게 좋은 이유는 무엇인가요?
A: 파이썬은 문법이 간결하고 사람의 언어와 비슷하여 배우기 쉽습니다. 또한 데이터 분석, 웹 개발, 인공지능 등 다양한 분야에 활용될 수 있어 첫 프로그래밍 언어로 매우 적합합니다. 이 글에서 다룬 기초를 잘 익히면 비전공자도 체계적인 독학 로드맵을 따라 충분히 전문가로 성장할 수 있습니다.

Q2: 리스트와 딕셔너리의 가장 큰 차이점은 무엇인가요?
A: 가장 큰 차이점은 데이터를 ‘찾는 방법’에 있습니다. 리스트는 0부터 시작하는 ‘순서(인덱스)’를 통해 데이터에 접근하는 반면, 딕셔너리는 개발자가 직접 지정한 고유한 ‘이름(키)’을 통해 데이터에 접근합니다. 따라서 순서가 중요하면 리스트를, 의미 있는 이름으로 데이터를 관리하고 싶다면 딕셔너리를 사용합니다.

Q3: 작은 프로그램을 만들 때도 예외 처리가 꼭 필요한가요?
A: 네, 그렇습니다. 프로그램의 규모와 상관없이 사용자는 언제나 예상치 못한 방식으로 프로그램을 사용할 수 있습니다. 예를 들어, 숫자를 입력해야 할 곳에 문자를 입력하는 것은 흔한 실수입니다. 간단한 try-except 구문이라도 추가하면 프로그램이 갑자기 멈추는 것을 방지하고 사용자에게 더 친절한 안내를 제공할 수 있어 프로그램의 완성도를 크게 높여줍니다. 특히 중학생 코딩 문제 해결과 같이 오류 분석이 중요한 학습 과정에서도 필수적인 습관입니다.

뉴스레터 구독

새 글이 올라오면 이메일로 받아보세요.

파이썬 변수 자료형부터 예외 처리까지 핵심 기초 배우기”에 대한 2개의 생각

고소미에 답글 남기기 응답 취소