1.1. 변수란 무엇인가?
Python에서 변수란 객체에 할당된 이름으로, 데이터 저장, 변경 및 접근에 사용된단다. Python은 동적 타이핑 언어로, 변수의 타입은 그 값이 할당될 때 결정되고, 코드 실행 중에 그 타입이 바뀔 수 있어.
Python 변수의 주요 측면:
1. 선언 및 할당:
Python에서는 변수를
선언할 필요가 없어 메모리를 예약하려고. 변수에 값을 할당하면
자동으로 메모리가 예약되고 타입이 결정되지. 예를 들어, x = 10
는 x
라는 이름의 변수를 만들고 그 값으로 10
을 할당해줘.
2. 명명 규칙:
변수 이름은 설명적이어야 하고, Python 식별자 규칙을 따라야 해, 예를 들어 숫자로 시작하면 안 되고 특수 문자도 포함하면 안 돼, 밑줄은 빼고.
예시:
name1 = "Alex" | name1 — 좋은 이름이야. |
---|---|
user_age = 5 | user_age — 좋은 이름이야. |
%city% = 7 | %city% — 나쁜 이름, 특수 문자가 들어있어. |
1234qwerty = 1234 | 나쁜 이름 — 숫자로 시작해. |
3. 동적 타이핑:
언급했듯이, Python의 변수 타입은 프로그램 실행 중에 결정되므로,
언어가 유연하고 개발에 편리하다. 프로그램 진행하면서 타입이 변하는 예: x = 10
코드는 x
에 숫자 값을 할당하고, x = "hello"
코드는 x
에 문자열 값을 할당해줘.
예시:
age = "Alexander" |
변수 age 는 "Alexander"라는 텍스트 문자열을 담고 있어
|
---|---|
age = 35 | 변수 age는 35라는 숫자를 담고 있어 |
age = "London" | 변수 age는 "London"이라는 텍스트 문자열을 담고 있어 |
age = 3.14 | 변수 age는 3.14라는 부동 소수점 숫자를 담고 있어 |
4. 변수의 참조 특성:
Python에서 변수는 객체에 대한 참조야. 즉, 변수에 값이 할당되면, 그 값이 담긴 객체에 대한 참조가 만들어지는거야. 만약 x
와 y
가 같은 객체를 가리키면, x
를 통해 이루어진 변경은 y
에도 반영되는데, 두 변수 모두 메모리의 같은 객체를 참조하고 있기 때문이지.
5. 스코프:
변수의 스코프는 프로그램 중에서 변수가 접근 가능한 부분을 결정해줘. Python은 로컬, 글로벌, 그리고 (내포된 함수의) 넌로컬 변수를 지원해. 이 주제는 좀 나중에 자세히 알아볼 거야. 한번에 전부 다룰 순 없으니까.
6. 메모리 관리:
Python은 변수를 위해 자동으로 메모리를 관리하며, 가비지 컬렉터를 사용해 사용되지 않는 메모리를 추적하고 해제해줘.
7. 불변 객체:
Python의 몇몇 데이터 타입, 예를 들어 문자열과 튜플은 불변이야. 이는 그 내용을 생성 후 변경할 수 없다는 걸 의미해. 이런 데이터를 변경하려고 시도하면 새로운 객체가 만들어져.
8. 다중 할당:
Python에서는 한 줄에 여러 할당 작업을 할 수 있어. 예시:
x = 1 | |
---|---|
y = 2 | x, y, z = 1, 2, 3 |
z = 3 |
1.2. 데이터 타입
Python은 프로그램 내에서 데이터 저장과 조작에 사용되는 여러 기본 데이터 타입을 지원해. 여기 int
, str
, float
그리고 bool
이 포함돼.
int (정수)
int
데이터 타입은 소수 부분이 없는 정수를 나타내는 데 사용돼. 양수와 음수를 모두 저장할 수 있지. 예를 들어,
x = 5는 변수 x에 정수 5를 할당해.
str (문자열)
str
타입은 텍스트 정보, 즉 문자열을 저장하는 데 사용돼.
Python에서는 문자열을 홑따옴표나 쌍따옴표로 묶어. 예를 들어,
name = "John"는 변수
name에 문자열
"John"을 할당해. Python의 문자열은 연결, 복사 등 여러 가지 작업을 지원하고, 텍스트 처리를 위한 다양한 메서드도 제공해.
float (부동 소수점 숫자)
float
타입은 소수점이 있는 숫자를 나타내는 데 사용돼. 이런 숫자는 소수점을 사용해 기록해. 예를 들어, pi = 3.14는 변수
pi에 π 값을 소수점 두 자리로 반올림한 값을 할당해.
bool (불값)
불 데이터 타입 bool
은 두 가지 값 중 하나를 취해:
True
또는
False
. 주로 조건문과 루프에서 조건의 실행을 제어하는 데 사용돼. 예를 들어, is_valid = True 는
변수 is_valid가 True
라는 불 값을 가졌음을 나타내.
이런 데이터 타입들은 Python에서 더 복잡한 데이터 구조와 알고리즘을 구축하는 기반이 되며, 프로그래머들이 데이터와 로직을 효과적으로 관리할 수 있게 해줘.
1.3. 변수 이름
Python에서, 변수 이름은 단순히 데이터를 참조하는 방법이 아니라 코드의 핵심 요소로, 코드의 이해를 돕고 유지보수를 편리하게 만들어. 올바른 변수 이름 선택은 코드 이해와 디버깅을 크게 도와주고, 나쁜 선택은 혼란과 오류를 초래할 수 있어.
Python 변수 명명 규칙:
명확한 이름 사용: 변수 이름은 그 변수가 담고 있는 데이터를 반영해야 해서 코드가 쉽게 읽히도록 만들어야 해. 예를 들어, сount
가 x
보다는, 변수가 뭔가를 세기 위해 사용된다면 더 나아.
스타일 기준 준수: Python에서 일반적으로 받아들여지는 기준은 PEP 8로, 변수 이름에 소문자와 밑줄을 사용하는 걸 권장해 (예를 들어, my_variable
).
키워드 충돌 피하기: Python의 문법을 위한 예약어는 사용하면 안 돼, 예를 들어 if
, else
, class
, return
등이야. 이는 실행 오류를 초래할 수 있어.
작은 규모 변수에 짧은 이름 사용: 코드의 작은 블록에서 사용되는 로컬 변수에는 i
나 j
와 같은 짧은 이름이 종종 적합하고 코드를 더 간결하게 만들어.
글로벌 변수에 길고 설명적인 이름 사용: 프로그램의 여러 부분에서 사용되는 글로벌 변수와 상수는 더 길고 설명적인 이름을 가져야 해서 그 목적이 분명해.
좋은 변수 이름 예:
user_age
대신 age
(컨텍스트에 여러 나이가 있을 때)
total_price
대신 total
(이 가격임을 명확히 함)
max_height
또는 min_height
대신 max_h
또는
min_h
특별한 경우:
많은 알고리즘, 특히 수학적 및 과학적 알고리즘에서는 단일 문자 변수를 사용하는 것이 일반적이야 (예: 좌표에서는 x
, y
, z
). 이런 스타일이 산업 표준이고 코드 이해를 높이는 경우에 허용돼.
Python에서 변수 이름은 효과적이고 유지 가능한 코드를 만드는 데 중요한 역할을 해. 그러니까 귀찮아하지 말고 좋은 이름을 고민해봐. 그래야 디버깅과 코드 유지 관리가 훨씬 쉬워지고, 다른 프로그래머들에게도 더 접근 가능해질 수 있어.
GO TO FULL VERSION