Python 변수의 개념을 쉽게 이해할 수 있도록 단계별로 정리하고, 실제 예시와 함께 쉽게 설명한 기초 입문 가이드입니다.
파이썬을 처음 배울 때 가장 먼저 만나는 개념이 바로 “변수(Variable)”입니다.
변수는 코드를 작성할 때 수없이 사용되는 기본 도구이기 때문에, 처음에 정확하게 이해하는 것이 매우 중요합니다.
변수는 사실 이름만 들으면 어렵게 느껴지지만, 실제로는 초등학생도 이해할 수 있을 정도로 단순한 개념입니다.
예를 들면 “물건을 넣는 상자”, “이름표가 붙은 칸” 같은 것이라고 생각하면 됩니다.
이 글에서는 파이썬 변수가 무엇인지, 어떻게 만드는지, 어떤 규칙이 있는지, 어떤 실수를 조심해야 하는지 아주 쉽게 설명하겠습니다.
Python 변수의 기본 개념
변수는 '이름표가 붙은 상자'
변수를 이해하는 가장 쉬운 비유는 상자입니다.
- 상자 안에는 물건을 넣을 수 있다.
- 상자 바깥에는 이름표가 붙어 있다.
- 이름표를 보면 상자 안에 무엇이 들어 있는지 알 수 있다.
- age = 10 여기서 age는 이름표, 10은 상자 안의 값입니다.
- 즉, 10이라는 숫자를 age라는 상자에 넣었다는 뜻입니다.
파이썬 변수는 만들 때 '자료형'을 적지 않아도 된다.
다른 언어 (C, Java 등)는 변수를 만들 때 자료형을 꼭 적어야 합니다.
int age = 10;파이썬은 그냥 값만 넣으면 파이썬이 자동으로 자료형을 판단해 줍니다.age = 10, name = "홍길동", height = 173.5age > 정수(int), name > 문자열(str), height > 실수(float)변수 이름은 마음대로 지을 수 있을까?
기본적으로 자유롭게 짓지만, 아래 규칙은 반드시 지켜야 합니다.
- 규칙1: 숫자로 시작하면 안된다.
- 1age = 10 (X) / age1 = 10 (O)
- 규칙2: 공백(스페이스)은 사용할 수 없다.
- my age = 10 (X) / my_age = 10 (O)
- 규칙3: 특수문자 사용 금지(예외: _언더바 사용 가능)
- my-age (X) / my*age (X) / my_age (O)
- 규칙4: 대문자와 소문자는 완전히 다르다.
- age = 10 / Age = 20 / AGE = 30
- 위 세개는 각가 다른 변수 세개입니다.
변수에 값을 넣는 방법(할당)
변수에 값을 넣는 동작을 할당(Assignment)라고 하며 기호를 사용합니다.
- x = 3 y = x + 2
- 먼저 오른족 값을 계산합니다.
- 그 값을 왼쪽 변수에 넣습니다.
- 즉, X + 2를 먼저 계산한 후 > 5를 y에 넣습니다.
변수는 언제든지 새로운 값으로 바뀔 수 있다.
- score = 10 / score = 20 / score = 30
- 이렇게 되면 계속 값을 덮어 쓰게 됩니다.
- 상자에 보관했던 물건을 계속 바꾸는 것과 같습니다.
변수에 저장되는 것은 '값'이 아니라 '값의 위치'
- 파이썬에서 변수는 '값 자체'를 들고 있지 않습니다.
- 값이 저장된 장소의 주소를 가지고 있습니다.
- 이 개념은 여기서는 간단하게 짚고만 넘어가겠습니다.
- 변수는 상자지만, 실제로는 "상자가 있는 위치를 알려주는 이름표"에 가깝습니다.
실제 예시로 변수 이해하기
숫자 저장하기
- a = 10 b = 20 print(a + b) # 30
문자 저장하기
- name = "홍길동" print("안녕하세요, " + name + "님!")
두 개의 변수를 합치기
- first = "Python" second = "Variable" result = first + " " + second print(result)
- 결과: Python Variable
변수에 계산한 값 넣기
- x = 7, y = 3, z = x * y, print(z) # 21
입력 받아 변수에 저장하기
- user = input("당신의 이름은? ") print("반가워요,", user)
변수 이름 잘못 짓는 실수 예시
- my variable = 10 (X)
- my@var = 10 (X)
- 2name = "Kim" (X)
변수 이름 잘 짓는 팁
- 의미 있게(age, price, level 등)
- 너무 짧지 않게
- 영어로
- 소문자 + 언더바 사용 권장
- 예시
- user_age
- total_price
- player_level
- 파이썬 변수는 왜 필요한가?
- 변수는 값을 저장하고 다시 사용할 수 있게 만드는 도구입니다.
- 만약 변수가 없다면 매번 값을 직접 적어야 해서 코드가 길어지고 관리가 어려워집니다.
- 변수는 이름표처럼 특정 값을 가리키기 때문에 사람이 이해하기도 쉬워집니다.
- 예를 들어 age라는 이름은 ‘나이’를 의미해 읽는 사람이 바로 알아차릴 수 있습니다.
- 또한 프로그램 실행 중 값이 바뀔 수 있기 때문에 유연한 코딩이 가능합니다.
- 계산 결과나 입력값을 저장할 수 있는 기능도 제공합니다. 게임 점수, 사용자 정보, 데이터 분석 값 등 거의 모든 프로그램에서 변수가 사용됩니다.
- 변수는 메모리에 공간을 빌려 이름을 붙여 주는 것이라고 이해하면 됩니다.
- 어떤 값을 담아도 파이썬이 자동으로 자료형을 판단합니다. 이렇게 변수를 사용하면 프로그램이 훨씬 효율적이고 읽기 쉬워집니다.
- 변수는 어떻게 만드는 것이 가장 좋은가?
- 변수는 의미가 분명한 이름으로 만드는 것이 좋습니다.
- 예를 들면 player_score, user_name 같은 형태입니다. 너무 짧으면 의미가 모호하고, 너무 길면 코드 작성이 번거롭습니다.
- 소문자와 언더바를 조합한 snake_case 방식을 많이 사용합니다.
- 숫자로 시작하면 안 되고 공백도 포함할 수 없습니다. 변수 이름은 영어로 작성하는 것이 가장 읽기 좋습니다.
- 또한 대문자와 소문자가 구분되기 때문에 주의해야 합니다. 같은 의미의 변수 이름을 여러 방식으로 섞어 쓰면 코드가 복잡해질 수 있습니다.
- 일관된 스타일을 유지하는 것이 중요합니다. 프롬프트 입력값과 함께 사용할 때도 명확한 변수 이름이 도움이 됩니다.
- 파이썬 변수는 자료형을 적지 않아도 되는 이유는?
- 파이썬은 동적 타이핑(dynamic typing) 언어이기 때문입니다.
- 즉, 변수의 타입을 코드에서 직접 지정하지 않아도 됩니다.
- 값이 저장되는 순간 파이썬이 자료형을 자동으로 감지합니다. 예를 들어 10은 int로, "Hello"는 str로 자동 분류됩니다.
- 덕분에 초보자가 배우기 쉽고 코드도 간결해집니다. 다른 언어처럼 int age = 10 같은 형식이 필요 없습니다.
- 프로그램 중간에 변수 타입이 바뀌는 것도 가능합니다. 하지만 이 유연함 때문에 조심해야 하는 부분도 있습니다.
- 예를 들어 숫자와 문자열을 더하려고 하면 오류가 발생합니다. 동적 타이핑 덕분에 파이썬이 다양한 상황을 표현하는 데 유리합니다.
- 변수에 저장된 값은 언제 사라지는가?
- 변수는 프로그램이 끝나면 자동으로 사라집니다. 메모리에서 해당 공간이 회수되는 것입니다.
- 예를 들어 파일을 실행해 값이 저장되었다면 프로그램 종료와 함께 저장된 데이터도 없어집니다.
- 변수는 컴퓨터 메모리를 잠시 사용하는 개념입니다. 사용자가 직접 삭제할 수도 있습니다.
- del 명령어를 사용하면 특정 변수만 삭제할 수 있습니다.
- 예: del age. 그러나 일반적으로 파이썬 쓰레기 수집기가 자동으로 관리합니다.
- 함수 안에서 만들어진 변수는 그 함수가 끝나면 사라집니다. 이런 구조를 스코프(scope)라고 부릅니다. 따라서 변수는 프로그램 실행 중에만 존재한다고 이해하면 됩니다.
- 변수 이름을 숫자로 시작하면 안 되는 이유는?
- 프로그래밍 언어는 변수 이름 규칙이 정해져 있기 때문입니다.
- 숫자로 시작하는 이름은 언어가 해석하기 어렵습니다.
- 예를 들어 1age는 숫자 1과 age가 붙은 형태인지 변수명인지 구분이 안 됩니다.
- 파이썬은 식별자(identifier) 규칙을 엄격하게 따릅니다.
- 첫 글자는 반드시 문자나 언더바여야 합니다. 그 뒤에 숫자가 오는 것은 괜찮습니다.
- 예: age1. 이 규칙을 어기면 SyntaxError가 발생합니다. 초보자가 자주 하는 실수라 주의가 필요합니다.
- 모든 프로그래밍 언어가 비슷한 규칙을 가지고 있습니다. 규칙을 지키면 코드가 읽기 쉽고 실수도 줄어듭니다.
- 변수에 저장되는 값의 종류는 무엇이 있는가?
- 파이썬에는 다양한 자료형이 존재합니다.
- 대표적으로 정수 int, 실수 float, 문자열 str이 있습니다.
- 그 외에도 리스트, 딕셔너리, 튜플 등 복잡한 자료형도 많습니다.
- Boolean이라는 참/거짓 값을 저장할 수도 있습니다.
- 변수를 만들 때 타입을 적지 않아도 되지만 어떤 값이 저장되는지는 중요합니다.
- 예를 들어 숫자끼리만 계산이 가능합니다. 문자열과 숫자를 섞어서 더하려고 하면 오류가 발생합니다.
- 자료형을 이해하면 변수를 더 잘 활용할 수 있습니다. 특히 데이터 분석이나 게임 개발에서 다양한 자료형이 필수적으로 사용됩니다.
- 변수에 저장된 값을 화면에 출력하려면 어떻게 해야 하는가?
print() 함수를 사용하면 됩니다. 예를 들면 다음과 같습니다.
이렇게 작성하면 age에 저장된 값이 출력됩니다. 문자열과 함께 출력하고 싶다면 print("나이:", age)처럼 작성하면 됩니다.
print는 가장 자주 사용하는 함수 중 하나입니다. 디버깅(오류 찾기)에도 매우 유용합니다.
변수가 잘 저장되었는지 확인할 때 많이 활용합니다.
여러 값을 동시에 출력하는 것도 가능합니다. print(age, name, height)처럼 콤마로 구분해 작성할 수 있습니다.
- 변수에 문자열을 저장할 때 주의할 점은?
- 문자열은 반드시 큰따옴표 또는 작은따옴표로 감싸야 합니다.
- 예: name = "홍길동". 따옴표 없이 문자를 입력하면 파이썬은 변수 이름으로 오해합니다.
- 또한 따옴표가 열렸으면 반드시 닫혀 있어야 합니다.
- 문자열 안에 따옴표를 포함하려면 다른 종류의 따옴표를 사용해야 합니다.
- 예: "I'm fine". 문자열은 + 연산자로 이어 붙일 수 있습니다.
- 하지만 문자열과 숫자는 더할 수 없다는 점을 주의해야 합니다. str() 함수로 숫자를 문자로 바꾸면 해결됩니다. 문자열은 파이썬에서 가장 자주 사용되는 자료형입니다.
- 변수 하나에 여러 종류의 값을 넣을 수 있는가?
- 한 번에 넣을 수 있는 값은 하나입니다.
- 하지만 프로그램 실행 중에는 자유롭게 바꿀 수 있습니다. 예를 들면 age = 10 했다가 age = "열 살"로 바꿀 수 있습니다.
- 파이썬은 자료형이 자유롭기 때문에 이런 변경을 허용합니다.하지만 이런 방식은 혼란을 줄 수 있어 권장하지 않습니다.
- 변수의 역할은 가능한 한 일정하게 유지하는 것이 좋습니다.
- 예를 들어 age는 항상 숫자형으로 유지해야 예측하기가 쉽습니다. 한 변수에 너무 많은 의미를 담는 것은 코드 읽기 어려워지는 원인입니다.
- 변수 이름을 한글로 만들어도 되는가?
- 파이썬은 한글 변수 이름도 허용합니다. 예: 나이 = 10. 하지만 실무에서는 절대 사용하지 않습니다.
- 이유는 협업할 때 다른 사람이 이해하기 어렵기 때문입니다. 또한 영어 기반 도구와의 호환성 문제가 생길 수 있습니다.
- 검색하기도 불편해지고 코드 가독성도 떨어집니다. 교육용 예제에서는 괜찮지만 실제 프로젝트에서는 영어를 사용해야 합니다.
- 일관된 스타일로 코드를 작성하는 습관이 중요합니다.
- 변수와 상수의 차이는 무엇인가?
- 변수는 값이 자유롭게 바뀔 수 있는 저장공간입니다.
- 반면 상수(constant)는 한 번 지정하면 값을 바꾸지 않는 값입니다.
- 파이썬은 특별한 상수 문법이 없지만 관습적으로 대문자로 작성합니다.
- 예: PI = 3.14. 이렇게 쓰면 개발자끼리 “이 값은 바꾸면 안 된다”는 약속이 됩니다.
- 상수를 잘 사용하면 코드의 의미가 분명해지고 유지보수가 쉬워집니다.
- 예를 들어 세금 비율 같은 값은 상수로 표현하는 것이 좋습니다.
- 변수 값을 서로 교환하려면 어떻게 하는가?
- 파이썬은 매우 간단한 방식으로 교환할 수 있습니다.
- 예: a, b = b, a. 이 한 줄이면 두 변수의 값이 바뀝니다.
- 다른 언어에서는 임시 변수(temp)를 만들어야 합니다.
- 파이썬의 튜플 구조 덕분에 가능한 방식입니다. 값 교환은 정렬 알고리즘 등 많은 곳에서 사용됩니다.
- 이 기능은 파이썬을 편하게 해 주는 요소입니다. 초보자도 쉽게 이해할 수 있는 문법입니다.
- 변수의 값이 어떤 자료형인지 확인하려면?
- type() 함수를 사용하면 됩니다. 예: print(type(age)).
- 그러면 <class 'int'> 이런 결과가 나옵니다. 이 기능은 디버깅할 때 매우 중요합니다.
- 자료형을 헷갈리면 오류가 생기기 쉽습니다. 따라서 출력해 확인하는 습관이 필요합니다.
- 특히 사용자 입력값은 기본적으로 문자열이기 때문에 숫자로 변환해야 합니다.
- type은 파이썬의 기본 중 기본입니다.
- 변수 이름이 너무 길면 어떤 문제가 있는가?
- 너무 긴 이름은 읽기 어렵고 입력하기 불편합니다.
- 예: user_age_data_for_game_level_up_condition. 이렇게 길면 오타도 잘 나고 코드 전체가 복잡해집니다.
- 적절한 길이가 중요합니다. 보통 10~20자 정도가 적당합니다.
- 의미만 잘 전달되면 충분합니다. 길어도 괜찮지만 과한 길이는 피해야 합니다. 변수 이름의 가독성은 개발 효율과 직결됩니다.
- 변수 안에 리스트를 저장할 수 있는가?
- 가능합니다. 예: numbers = [1, 2, 3]. 리스트는 여러 값을 하나의 변수에 저장할 수 있게 합니다.
- 파이썬이 제공하는 강력한 자료형 중 하나입니다.
- 리스트 안에는 숫자, 문자열, 다른 리스트까지 모두 저장할 수 있습니다.
- 반복문과 함께 사용하면 매우 유용합니다. 데이터를 모아 관리하는 데 자주 이용됩니다.
- 초보자가 리스트를 이해하면 코딩의 폭이 넓어집니다.
- 변수를 잘못 사용하면 어떤 오류가 자주 발생하는가?
- NameError가 대표적입니다.
- 변수 이름을 잘못 입력하면 이런 오류가 뜹니다.
- 예: name을 입력해야 하는데 nae라고 쓰면 오류가 납니다.
- TypeError도 자주 발생합니다. 예: 문자열과 숫자를 더하려고 하면 발생합니다.
- 또한 오타가 가장 흔한 문제입니다. 변수 이름이 길수록 오타가 자주 나니 주의해야 합니다.
- 오류가 발생하면 print로 값을 확인하는 것이 좋은 방법입니다.
- 변수는 코드 어디서든 사용할 수 있는가?
- 그렇지 않습니다. 변수에는 ‘범위(scope)’가 존재합니다.
- 함수 안에서 만든 변수는 그 함수 밖에서 사용할 수 없습니다. 지역 변수(local variable)라고 합니다.
- 함수 밖에서 만든 변수는 전역 변수(global variable)입니다.
- 범위를 이해하지 못하면 NameError가 발생할 수 있습니다.
- 초보자 때 가장 많이 겪는 문제 중 하나입니다. 스코프는 프로그램 구조를 이해하는 데 매우 중요한 개념입니다.
- 변수에 저장된 값이 숫자인지 문자열인지 헷갈릴 때 해결법은?
- type()으로 확인하는 것이 기본입니다.
- 또한 print()로 값을 출력해 실제로 무엇이 저장되어 있는지 눈으로 보는 것도 중요합니다.
- input()으로 받은 값은 기본적으로 문자열이라는 점을 기억해야 합니다.
- 숫자가 필요하다면 int() 또는 float()로 변환해야 합니다.
- 데이터 처리가 많을 때 가장 많이 발생하는 혼동입니다. 문제를 줄이려면 변수 이름을 type과 맞게 짓는 것이 도움이 됩니다.
- 변수 이름은 대문자로만 작성해도 되는가?
- 가능하지만 일반 변수는 소문자로 작성하는 것이 규칙입니다.
- 대문자는 상수(Constant)를 나타낼 때 사용합니다.
- 예: MAX_SPEED = 100. 대문자로만 쓰면 헷갈리기 쉽습니다.
- 협업할 때 다른 개발자가 혼동합니다. 따라서 일반 변수는 my_age처럼 소문자로 작성하는 것이 좋습니다.
- 대문자는 정말 고정값일 때만 사용해야 합니다.
- 같은 값을 반복해서 입력할 필요가 없습니다.
- 의미 있는 이름을 사용하면 코드가 읽기 쉬워집니다.
- 값이 바뀌어도 변수 하나만 수정하면 전체 코드가 자동으로 업데이트됩니다.
- 유지보수가 쉬워지고 오류도 줄어듭니다. 프로그램의 유연성이 높아집니다.
- 반복적인 계산이나 입력도 간단해집니다. 변수의 재사용성은 프로그래밍을 효율적으로 만들어 주는 핵심 요소입니다.
파이썬 변수는 복잡한 기술이 아니며, 단지 “값을 넣어두는 이름표가 붙은 상자”라고 생각하면 쉽게 이해할 수 있습니다.
규칙만 정확히 지키면 누구든지 편하게 사용할 수 있고, 파이썬의 자동 자료형 기능 덕분에 초보자도 빠르게 익힐 수 있습니다.
앞으로 Python을 공부하면서 변수를 얼마나 자주 쓰는지 경험할 것입니다.
이번 글을 통해 기본 개념을 확실히 이해했다면, 이후 단계에서 훨씬 빠르게 성장할 수 있습니다.
읽어주셔서 감사합니다. 추가로 궁금하신 내용이 있으시다면 하단의 링크를 참고해주세요
[Python] 파이썬 VSCode 연동 설치법, 왕초보도 10분이면 끝!
https://bit.ly/3Zj3EJF
[Python] 파이썬 처음 시작할 때 꼭 알아야 할 IDLE 사용법!
https://bit.ly/4khUt4u
[Python] 처음 배우는 파이썬! 설치 부터 Hello World까지
https://bit.ly/4dqe3Jt