파이썬 왕초보 탈출기 #1: 변수(Variables), 데이터 마법상자

Programming/파이썬|2025. 4. 5. 13:14
반응형

1. 변수(Variable)

변수를 가장 쉽게 이해하는 방법은 데이터를 담는 상자 또는 데이터에 붙이는 이름표라고 생각하는 것입니다.

  • 상자 비유: 여러분이 숫자 10, '안녕하세요'라는 문자열, 또는 [1, 2, 3] 같은 리스트 데이터를 컴퓨터 메모리 어딘가에 저장하고 싶다고 가정해 봅시다. 이때 그냥 저장하면 나중에 어디 있는지 찾기 어려울 것입니다. 그래서 '숫자_상자', '인사말_상자' 처럼 이름이 붙은 상자를 만들고 그 안에 데이터를 넣어두는 것입니다. 이 상자가 바로 변수입니다.
  • 이름표 비유: 컴퓨터 메모리에는 수많은 데이터 조각들이 존재합니다. 특정 데이터 조각(예: 숫자 30)을 우리가 쉽게 알아보고 다시 사용하기 위해 '나이'라는 이름표를 붙여주는 것과 같습니다. 나중에 '나이' 이름표를 참조하면 컴퓨터는 30이라는 데이터를 가져다주는 것입니다.

왜 변수를 사용합니까?

  • 재사용성: 한번 저장해두면 필요할 때마다 변수 이름만으로 계속해서 값을 사용할 수 있습니다. 매번 동일한 값을 다시 입력할 필요가 없습니다.
  • 가독성: x = 3.141592 보다는 pi = 3.141592 가 훨씬 이해하기 쉽습니다. 변수 이름을 의미 있게 지으면 코드가 수행하는 작업을 명확하게 파악할 수 있습니다.
  • 유지보수: 만약 프로그램 전체에서 사용되는 특정 값(예: 할인율)이 변경되어야 한다면, 변수를 사용했을 경우 변수에 할당된 값 단 한 곳만 수정하면 됩니다. 변수 없이 값 자체를 여러 곳에 사용했다면 수정 작업이 매우 번거로울 것입니다.

 


2. 파이썬에서 변수 생성하기

파이썬에서 변수를 생성하는 것은 매우 간단합니다. = 기호 (할당 연산자라고 부릅니다)를 사용해서 변수 이름에 원하는 값을 '할당'해주면 완료됩니다.

# 변수 이름 = 값

my_number = 10       # my_number 라는 변수에 숫자 10을 저장
greeting = "Hello, Python!" # greeting 이라는 변수에 문자열 "Hello, Python!"을 저장
pi = 3.141592       # pi 라는 변수에 실수 3.141592를 저장
is_learning = True   # is_learning 이라는 변수에 불리언(True/False) 값 True를 저장

보시는 것처럼, 정말 간단합니다. = 왼쪽에는 여러분이 지정할 변수 이름, 오른쪽에는 저장하고 싶은 값(데이터)을 명시하면 됩니다. 파이썬은 변수에 어떤 종류의 데이터가 할당되었는지 스스로 파악합니다 (이를 '동적 타이핑'이라고 하며, 추후 더 자세히 다룰 것입니다!).

 


3. 변수 이름 명명: 규칙과 권장 사항

변수 이름은 임의로 지정할 수 없습니다. 파이썬 인터프리터가 이해할 수 있도록 몇 가지 규칙을 준수해야 하며, 다른 개발자와의 협업 또는 추후 코드 관리를 용이하게 하기 위해 권장 사항(컨벤션)을 따르는 것이 좋습니다.

 

반드시 준수해야 할 규칙 (Syntax Rules):

  1. 시작 문자: 변수 이름은 알파벳 문자(a-z, A-Z) 또는 밑줄 기호(_)로 시작해야 합니다. 숫자로 시작할 수 없습니다!
    _my_var => (O - 올바른 예)
    myVar => (O - 올바른 예)
    MyVar => (O - 올바른 예)
    9_num => (X - 잘못된 예: 숫자로 시작 불가)
  2. 구성 요소: 이름의 나머지 부분은 알파벳 문자, 숫자(0-9), 밑줄 기호(_)로만 구성될 수 있습니다. 공백이나 특수문자(+, -, *, /, @, $, % 등)는 사용할 수 없습니다.
    user_age => (O - 올바른 예)
    level9 => (O - 올바른 예)
    user name => (X - 잘못된 예: 공백 불가)
    user-age => (X - 잘못된 예: 하이픈(-) 불가)
  3. 키워드(예약어) 사용 금지: 파이썬이 내부적으로 사용하는 특별한 의미를 가진 단어들(예: ifforwhileclassdefreturn 등)은 변수 이름으로 사용할 수 없습니다.
    class = "A" (X - 잘못된 예: class는 키워드)
    Tip: 어떤 단어들이 키워드인지 확인하고 싶다면, 파이썬 인터프리터나 스크립트에서 아래 코드를 실행해 보시기 바랍니다.
  4. 대소문자 구분: 파이썬은 대소문자를 엄격하게 구분합니다. 즉, my_variablemy_VariableMy_VariableMY_VARIABLE은 모두 서로 다른 변수로 인식됩니다.
    age = 20
    Age = 30
    print(age) # 출력: 20
    print(Age) # 출력: 30

권장하는 약속 (Naming Conventions - PEP 8 스타일 가이드):

규칙만 지키면 프로그램은 돌아가지만, 읽기 좋고 관리하기 편한 코드를 위해서는 약속을 따르는 것이 좋습니다. 파이썬 커뮤니티에서는 PEP 8이라는 스타일 가이드를 따르는 것을 권장합니다.

 

  1. 의미 있는 이름: 변수 이름은 그 변수가 무엇을 저장하는지 명확하게 나타내도록 지으세요.
    x = 10 => (X - x가 뭘 의미하는지 알 수 없음)
    user_count = 10 => (O - 사용자의 수를 의미함을 명확히 알 수 있음)
  2. snake_case 사용: 일반적인 변수 이름은 소문자를 사용하고, 여러 단어를 연결할 때는 밑줄 기호(_)로 구분하는 스네이크 케이스(snake_case)를 사용하는 것이 일반적입니다.
    my_variable_name => (O - 파이썬스러운 스타일!)
    myVariableName => (△ - 이건 보통 다른 언어(Java, JavaScript)에서 많이 쓰는 카멜 케이스(camelCase))
    MyVariableName => (△ - 이건 보통 클래스 이름에 사용하는 파스칼 케이스(PascalCase))
  3. 너무 짧거나 모호한 이름 피하기: i, j, k 와 같은 한 글자 변수 이름은 반복문(추후 학습 예정)의 인덱스와 같이 매우 제한적인 상황 외에는 사용을 지양하는 것이 좋습니다.

팁 & 흔히 겪는 문제점

1. 변수 값은 바뀔 수 있어요! (그래서 Variable!)

변수는 이름 그대로 그 안에 담긴 값을 변경할 수 있습니다. 이를 '재할당'이라고 합니다.

score = 80
print(score) # 출력: 80

score = 95 # score 변수에 새로운 값 95를 할당 (덮어쓰기)
print(score) # 출력: 95

score = score + 5 # 현재 score 값(95)에 5를 더한 결과를 다시 score에 할당
print(score) # 출력: 100

 

2. 이런 에러, 자주 만날 거예요: NameError
초보 시절 가장 흔하게 만나는 에러 중 하나가 NameError: name '...' is not defined 입니다. 이 에러는 크게 두 가지 이유로 발생합니다.

정의(생성)되지 않은 변수를 사용하려고 할 때:

print(my_name) # my_name 이라는 변수를 만든 적이 없는데 사용하려고 함
# 결과: NameError: name 'my_name' is not defined

- 해결: 사용하기 전에 반드시 =를 이용해 값을 할당해야 합니다. (예: my_name = "홍길동")

 

변수 이름에 오타가 있을 때:

user_age = 25
print(user_aege) # age를 aege로 잘못 입력함
# 결과: NameError: name 'user_aege' is not defined

- 해결: 변수 이름을 정확하게 입력했는지 확인해야 합니다. 대소문자 구분 규칙도 기억하십시오. (예: print(user_age))

 

3. 변수 이름, 일관성이 중요해요!
userNameuser_nameUserName처럼 명명 스타일을 혼용하면 추후 코드를 읽거나 수정할 때 혼란을 야기하고 오류 발생 가능성을 높입니다. 프로젝트 시작 시 (또는 파이썬 표준인 snake_case를 따르기로) 스타일을 결정하고 일관성 있게 사용하는 것이 좋습니다.

4. 키워드랑 헷갈리지 마세요!
간혹 list = [1, 2, 3] 이나 str = "hello" 처럼 파이썬의 내장 함수나 타입 이름과 같은 이름으로 변수를 만드는 경우가 있습니다. 문법적으로 오류는 아니지만, 원래의 함수/타입 기능을 덮어써 버려서 나중에 예상치 못한 문제를 일으킬 수 있습니다. (예: list() 함수를 못 쓰게 됨). 되도록이면 내장 함수/타입 이름은 변수 이름으로 사용하지 않는 것이 좋습니다.

 


4. 간단 예제: 변수 활용해보기

# 사용자 정보 저장하기
user_name = "파이썬 탐험가"
user_level = 1
points = 150.5
is_active = True

# 정보 출력하기
print("사용자 이름:", user_name)
print("레벨:", user_level)
print("포인트:", points)
print("활성 상태:", is_active)

# 레벨업!
user_level = user_level + 1 # 기존 레벨에 1을 더해 다시 저장
points = points + 100.0     # 포인트 증가

print("\n--- 레벨업! ---")
print("새로운 레벨:", user_level)
print("증가된 포인트:", points)

 


핵심 요약:

  • 변수는 데이터를 저장하는 이름이 부여된 공간입니다.
  • 연산자를 사용하여 변수명 = 값 형태로 생성합니다.
  • 이름 규칙(문자/밑줄 시작, 문자/숫자/밑줄 구성, 키워드 사용 금지, 대소문자 구분)을 준수해야 합니다.
  • 가독성을 위해 의미 있는 이름과 snake_case 사용을 권장합니다.
  • NameError는 변수가 정의되지 않았거나 이름에 오타가 있을 때 발생합니다.
반응형

댓글()