Skip to Content
💻 코리아IT아카데미 신촌 - 프로그래밍 학습 자료

Topic 3: 변수 - 데이터를 저장하고 관리하기 📦

🎯 학습 목표

변수의 개념을 이해하고 올바르게 사용하여 데이터를 저장하고 조작할 수 있으며, 의미있는 변수명을 작성할 수 있습니다.

🧠 변수의 필요성

기억하지 못하는 프로그램의 문제점

print("안녕하세요, 김철수님!") print("당신의 나이는 25세네요.") # 25라는 정보가 기억되지 않음 # 매우 긴 코드 이후에... print("이 영화는 25세 이상만 관람할 수 있어요.") # 매우 긴 코드 이후에... print("당신은 25세인데... 학생 할인이 가능한가요?")

문제점: 중요한 정보를 기억하지 못해서 매번 같은 값을 반복 입력해야 합니다.

🌟 변수: 데이터를 저장하는 공간

**변수(Variable)**는 컴퓨터의 메모리에 데이터를 저장하는 공간입니다:

  • 데이터를 저장하고 보관
  • 필요할 때마다 꺼내서 사용
  • 내용을 변경하고 업데이트 가능

변수가 있으면 프로그램이 데이터를 기억하고 재사용할 수 있습니다.

📦 PART 1: 변수의 기본 - 데이터 저장하고 사용하기

첫 번째 변수 만들기

# 변수 선언과 값 할당 name = "김파이썬" age = 20 height = 175.5 is_student = True print(f"이름: {name}") print(f"나이: {age}세") print(f"키: {height}cm") print(f"학생인가요? {is_student}")

🔍 변수의 구조

name = "김파이썬" # ↑ ↑ ↑ # 변수명 값 할당연산자
  1. name: 변수명 (데이터에 붙이는 이름표)
  2. =: 할당 연산자 (값을 저장하는 기호)
  3. "김파이썬": 값 (저장될 데이터)

🎪 변수 활용 예제

# 사용자 정보 수집 print("회원가입을 위한 정보를 입력해주세요.") name = input("이름: ") age = int(input("나이: ")) city = input("거주 도시: ") hobby = input("취미: ") # 수집된 정보 활용 print("\n" + "="*40) print("회원가입이 완료되었습니다.") print("="*40) print(f"환영합니다, {name}님!") print(f"{city}에서 오신 {age}세 회원님,") print(f"{hobby}를 좋아하시는군요!")

🏷️ PART 2: 변수명 작성 규칙

😱 나쁜 변수명 예시

# ❌ 의미를 알 수 없는 변수명 a = "김파이썬" b = 20 c = "서울" x = input("뭔가: ") temp = 175.5 data = True print(f"{a}님은 {c}에 살고 {b}세입니다.") # 뭘 의미하는지 알 수 없음

✅ 좋은 변수명 예시

# ✅ 의미가 명확한 변수명 student_name = "김파이썬" student_age = 20 home_city = "서울" favorite_subject = input("좋아하는 과목: ") height_cm = 175.5 is_enrolled = True print(f"{student_name}님은 {home_city}에 살고 {student_age}세입니다.") # 한눈에 무슨 의미인지 알 수 있음

📏 변수명 작성 규칙

🚫 금지 사항

# ❌ 숫자로 시작 1name = "김파이썬" # SyntaxError! 2age = 20 # SyntaxError! # ❌ 공백 포함 student name = "김파이썬" # SyntaxError! # ❌ 특수문자 사용 student-name = "김파이썬" # SyntaxError! student@name = "김파이썬" # SyntaxError! # ❌ 파이썬 예약어 사용 if = "김파이썬" # SyntaxError! for = 20 # SyntaxError! print = "안녕" # 기능을 망가뜨림!

✅ 올바른 변수명

# ✅ 영문자로 시작 name = "김파이썬" student_name = "김파이썬" # ✅ 숫자는 중간이나 끝에 사용 가능 name1 = "김파이썬" student_name_2024 = "김파이썬" # ✅ 언더스코어(_) 사용 가능 student_name = "김파이썬" _private_data = "비밀" # ✅ 대소문자 구분됨 Name = "김파이썬" # name과 다른 변수 NAME = "이파이썬" # 또 다른 변수

🎨 변수명 스타일 가이드

🐍 파이썬 스타일 (snake_case)

# ✅ 파이썬에서 권장하는 스타일 student_name = "김파이썬" home_address = "서울시 강남구" birth_year = 2004 is_premium_member = True total_study_hours = 100

🐪 참고: 다른 언어 스타일들

# 자바스크립트 스타일 (camelCase) - 파이썬에서는 비추천 studentName = "김파이썬" homeAddress = "서울시 강남구" # 상수 스타일 (UPPER_CASE) - 변하지 않는 값에만 사용 MAX_STUDENTS = 100 PI_VALUE = 3.14159

🔄 PART 3: 변수값 변경하기

변수는 변경 가능합니다

# 게임 캐릭터 정보 player_name = "용사" player_level = 1 player_hp = 100 player_gold = 50 print(f"🎮 {player_name} (Lv.{player_level})") print(f"❤️ HP: {player_hp}") print(f"💰 Gold: {player_gold}") print("\n🗡️ 몬스터와 전투!") player_hp = player_hp - 20 # 데미지 받음 player_gold = player_gold + 30 # 보상 획득 print(f"❤️ HP: {player_hp}") print(f"💰 Gold: {player_gold}") print("\n⬆️ 레벨업!") player_level = player_level + 1 player_hp = 100 # 완전 회복 print(f"🎮 {player_name} (Lv.{player_level})") print(f"❤️ HP: {player_hp}") print(f"💰 Gold: {player_gold}")

🧮 변수를 활용한 계산

# 쇼핑몰 장바구니 계산 print("🛍️ 파이썬 쇼핑몰") print("="*30) # 상품 정보 book_price = 15000 notebook_price = 3000 pen_price = 1500 # 주문 수량 book_count = int(input("📚 책 몇 권: ")) notebook_count = int(input("📒 노트 몇 개: ")) pen_count = int(input("✏️ 펜 몇 자루: ")) # 계산 book_total = book_price * book_count notebook_total = notebook_price * notebook_count pen_total = pen_price * pen_count grand_total = book_total + notebook_total + pen_total # 영수증 출력 print("\n" + "="*30) print("📋 영수증") print("="*30) print(f"📚 책: {book_count}권 × {book_price:,}원 = {book_total:,}원") print(f"📒 노트: {notebook_count}개 × {notebook_price:,}원 = {notebook_total:,}원") print(f"✏️ 펜: {pen_count}자루 × {pen_price:,}원 = {pen_total:,}원") print("="*30) print(f"💰 총 금액: {grand_total:,}원") print("="*30) print("구매해주셔서 감사합니다!")

🔢 변수 업데이트 단축 표현

# 일반적인 방법 score = 100 score = score + 50 # 150 # 단축 표현 score = 100 score += 50 # 150 (같은 결과) # 다양한 단축 표현들 money = 1000 money += 500 # money = money + 500 money -= 200 # money = money - 200 money *= 2 # money = money * 2 money //= 3 # money = money // 3 print(f"최종 금액: {money}")

🚨 초보자가 자주 하는 변수 실수와 해결법

실수 1: 변수를 정의하기 전에 사용

# ❌ 틀린 예 print(student_name) # NameError: name 'student_name' is not defined student_name = "김파이썬" # ✅ 올바른 예 student_name = "김파이썬" # 먼저 변수 정의 print(student_name) # 그 다음 사용

기억하세요: 변수는 반드시 정의 → 사용 순서를 지켜야 합니다!

실수 2: 변수명 오타

# ❌ 틀린 예 student_name = "김파이썬" print(student_nam) # NameError! 'm'이 빠짐 # ✅ 올바른 예 student_name = "김파이썬" print(student_name) # 정확한 이름 사용

: 변수명을 복사+붙여넣기 하거나, 에디터의 자동완성 기능을 활용하세요!

실수 3: 대소문자 혼동

# ❌ 틀린 예 name = "김파이썬" print(Name) # NameError! 'N'이 대문자 # ✅ 올바른 예 name = "김파이썬" print(name) # 정확한 대소문자

기억하세요: 파이썬은 대소문자를 구분합니다. nameName은 다른 변수예요!

실수 4: 할당연산자(=)와 비교연산자(==) 혼동

# ❌ 틀린 예 age == 20 # 비교만 하고 저장하지 않음 # ✅ 올바른 예 age = 20 # 값을 변수에 저장

구분하기:

  • =: 값을 저장할 때 (할당)
  • ==: 값을 비교할 때 (나중에 배울 예정)

실수 5: 숫자와 문자열 혼동

# ❌ 틀린 예 age = "20" # 문자열로 저장 next_age = age + 1 # TypeError: can't add int to string # ✅ 올바른 예 age = 20 # 숫자로 저장 next_age = age + 1 # 정상 작동 (21) # 또는 문자열을 숫자로 변환 age = "20" next_age = int(age) + 1 # 문자열을 정수로 변환

실수 6: 예약어를 변수명으로 사용

# ❌ 틀린 예 if = "조건" # SyntaxError! 'if'는 파이썬 예약어 for = 20 # SyntaxError! 'for'도 예약어 print = "안녕" # 동작하지만 print 기능을 망가뜨림! # ✅ 올바른 예 condition = "조건" # 의미있는 영어 단어 사용 count = 20 # 또는 관련된 단어 사용 message = "안녕" # print 대신 message 사용

파이썬 주요 예약어들: if, else, for, while, def, class, True, False, None

실수 7: 변수명에 공백이나 특수문자 사용

# ❌ 틀린 예 student name = "김파이썬" # SyntaxError! 공백 불가 student-name = "김파이썬" # SyntaxError! 하이픈 불가 student@name = "김파이썬" # SyntaxError! @ 불가 # ✅ 올바른 예 student_name = "김파이썬" # 언더스코어 사용 studentName = "김파이썬" # 카멜케이스 (파이썬에서는 비추천) student1 = "김파이썬" # 숫자는 끝에만 가능

💡 변수 실수 방지 팁

  1. 의미있는 이름 사용하기

    # ❌ 나쁜 예 a = "김파이썬" b = 20 # ✅ 좋은 예 student_name = "김파이썬" student_age = 20
  2. 일관된 명명 규칙 사용하기

    # ✅ snake_case로 통일 user_name = "홍길동" user_age = 25 user_email = "hong@email.com"
  3. 에디터의 도움 활용하기

    • 자동완성 기능 사용
    • 오타 체크 기능 활용
    • 문법 강조 기능으로 오류 확인

🎮 퀴즈: 변수 이해도 확인

Q1. 다음 중 올바른 변수명은?

  1. 2name
  2. student-name
  3. student_name
  4. if

💡 정답 확인

정답: 3번 (student_name)

1번: 숫자로 시작 불가 2번: 하이픈(-) 사용 불가
4번: 파이썬 예약어 사용 불가

Q2. 다음 코드의 결과는?

x = 10 x = x + 5 print(x)
  1. 10
  2. 15
  3. 10 + 5
  4. 오류 발생

💡 정답 확인

정답: 2번 (15)

x = x + 5는 기존 x값(10)에 5를 더해서 새로운 값(15)을 x에 저장합니다.

Q3. 변수의 가장 중요한 역할은?

  1. 계산을 빠르게 하기
  2. 코드를 예쁘게 만들기
  3. 데이터를 기억하고 재사용하기
  4. 오류를 방지하기

💡 정답 확인

정답: 3번 (데이터를 기억하고 재사용하기)

변수의 핵심은 메모리에 값을 저장하여 나중에 다시 사용할 수 있게 하는 것입니다.

✅ 변수 마스터 체크리스트

✅ 변수 마스터 체크리스트

🌟 학습 완료

변수를 배움으로써 프로그램이 데이터를 기억하고 활용할 수 있게 되었습니다. 이제 더 복잡하고 실용적인 프로그램을 만들 수 있는 기반을 마련했습니다.

📝 핵심 포인트

  • 변수는 데이터를 저장하는 메모리 공간입니다
  • 의미있는 변수명을 사용하여 코드의 가독성을 높이세요
  • 변수의 값은 언제든지 변경할 수 있습니다
  • 프로젝트 실습을 통해 변수 활용 능력을 기르세요

다음 단원에서는 연산자를 활용하여 변수를 더 효과적으로 조작하는 방법을 배워보겠습니다!

Last updated on