- 파이썬뿐만 아니라 모든 프로그래밍 언어에서 필수적으로 사용되고 있는 변수와 상수에 대한 설명
- 코딩에 있어서 가장 기본적인 변수와 상수가 무엇이며 어떻게 생성하는지 알아보고, 기본적인 활용 방법에 대해서 설명
이제부터 본격적으로 파이썬을 이용한 코딩 방법 (명령 문법 등)에 대해서 설명한다.
성질 급한 대한민국 사람인 것을 자랑하듯이 마구마구 진도를 빼거나, 순서 무시하고 본격적으로 프로그래밍에 대해서 이야기할 생각은 추호도 없다.
내가 그토록 많은 시도에도 크게 성공하지 못한 가장 큰 이유가 하나가 바로, 기어 다니지도 못하는데 뛰어나 다니고 날아다니고 싶어 했기 때문이다.
그러니, 처음 파이썬을 접하고 코딩에 입문하시는 여러분들도 나와 같은 전처를 밟지 않도록 하고 싶다는 생각이 강하다. 짧으면 몇 개월, 길게는 1년 2년 꾸준히 연습하고, 익히고, 간간히 프로젝트를 수행하다 보면 코딩이 점점 익숙해지고, 남의 코드를 읽는데 불편함도 없어질 때쯤이면, 충분히 0.2인분(?) 정도로 할 수 있지 않을까 생각한다.ㅎㅎ
이번 시간에는 프로그래밍의 기초로 변수와 상수에 대한 개념을 이해하고, 아주 기본적인 활용방법에 대해서 익혀 볼 수 있도록 해본다.
변수와 상수는 파이썬뿐만 아니라 모든 프로그래밍에서 기본 공통적으로 사용되는 부분이기 때문에, 무조건 잘 이해하고, 잘 사용할 수 있도록 만반의 준비가 되어야 있어야 하는 내용이다.
파이썬 변수(Variable) 란?
변수(變數, Variable)라는 단어는 사전적 의미 그대로 "어떠한 대응 관계로 변화하는 수"를 말하는 것으로, 수학에서는 "어떤 정해지지 않은 임의의 값을 표현해 사용된 기호"로 정의하고 있다.
프로그래밍에서는 수없이 사용되는 데이터(자료, 수 또는 값 등)를 저장하고 관리하기 위해서 사용자가 직접 이름을 만들어 사용하는 컴퓨터 메모리에 임시로 저장하는 공간을 의미하며, 이렇게 생성된 변수에 값을 할당하면 해당 값이 메모리에 저장되고, 필요할 때 해당 변수 이름을 통해 저장된 값을 불러오거나 접근 및 수정할 수 있다.
변수 선언 및 할당 예시
a = 10
b = "https://esajin.kr"
c = 3.14159
위와 같이 변수를 사용하기 위해 특별한 키워드는 필요하지 않고, 일반적인 a, b, c
등과 같은 변수 이름을 작성하고, 값을 할당하면 변수가 자동으로 생성되는 구조이다.
변수 할당 연산자는 =
을 기본으로 가장 많이 사용하고, +=
, -=
, *=
, /=
등과 같은 복합 대입 연산자와 &=
, |=
, ^=
등과 같은 비트 연산과 함께 사용하는 복합 대입 연산자등 다양하게 적용될 수 있지만, 이런 것은 우선 이런 게 있다는 것만 알아두고, 우선은 =
를 사용하여 값을 변수에 할당한다는 것만 알아두자.
※ 참고 :
변수 할당 연산자에서=
은 "같다"라는 뜻이 아니고, 할당 또는 대입한다 라는 의미로 사용된다.
오른쪽에 있는 값을 왼쪽에 있는 변수에 할당하는 구조는 다른 '프로그래밍' 언어에서도 동일하게 찾아볼 수 있으며, 약간의 차이는 있지만, 거의 비슷하게 변수 선언한다고 보면 된다.
변수가 왜 변수인가? 예시
# 변수a에 대입된 10을 출력
a = 10
print(a)
a = 10
a = "변경됨" # 최초 대입된 값이 동일한 변수에 다른 내용으로 대치되어 출력
print(a)
위와 같이 a
로 선언된 변수에 처음에는 10
으로 값을 할당되었다가, 똑같은 변수 이름에 변경됨
으로 할당된 후, 최종적인 결과 값은 변경됨
으로 출력되는 것을 확인할 수 있는데, 이것은 변수에 대입된 값은 중간에 다른 값으로 언제든지 변할 수 있고 해서 변수이다.
변수 선언(이름 지정) 시 유의사항
변수는 사용자가 직접 입력하여 사용하는 메모리 임시 저장소이기 때문에, 몇몇 가지 작성 규칙을 가지고 있다.
- 의미 있는 이름을 만들어서 사용한다.
※ 의미 있다는 것은 해당 값 또는 하는 일의 목적에 맞는 적당한 이름을 부여하는 것을 말하며, 대부분 영어단어를 많이 차용한다. - 변수는 대문자와 소문자를 다르게 인식함으로, 대/소문자 구분을 확실하게 해야 한다.
※ 파이썬은 변수뿐만 아니라, 각종 함수들도 대/소문자를 구분하기 때문에 확실히 구분할 필요가 있다. - 변수는 영문자와 숫자, 언더바(_)로 만으로 작성한다.
- 변수 중간에 공백(사이 띄우기)이 있으면 안 되며, 필요하다면 언더바로 단어를 구분한다.
- 처음부터 숫자를 변수 이름으로 시작할 수 없다.
※ 무조건 영문부터 시작하고, 가능하면 숫자는 사용하지 않는 것을 추천한다. - #, @, &등과 같은 특수 문자는 사용할 수 없다.
- 파이썬의 예약어(print, if, for 등)는 변수 이름으로 사용할 수 없다.
변수 선언 연습 해보기
아래 코드를 이용해서 직접 변수 선언 및 선언된 변수가 어떻게 활용되는지 확인해 보자.
name = "돌출과 회전"
age = 2
height = 168.3
print(name)
print(age)
print(height)
돌출과 회전
2
168.3
간단하게 변수 선언하고 값을 대입해서 print()
문을 이용해서 변수에 저장된 데이터를 출력하는 내용을 확인했다.
특별하게 변수 선언이 어렵다고 느껴지지 않았을 것이지만, 중요한 것은 이 변수 이름지정한 게 장난 아니게 스트레스를 안겨주기 때문에 이참에 영어 단어 공부한다고 생각하고 제대로 된 이름을 지정할 수 있도록 노력한다.
특히, aaa, bbb, ccc, abcd, a123, b123
등과 같은 무의미한 변수를 지정하는 버릇은 예초에 들이지 않는 것을 추천한다. 나중에 엄청 고생하고 싶지 않으면 말이다.
변수는 앞으로 파이썬 또는 다른 프로그래밍 언어를 두 번 다시 볼일 없는 경우를 제외하면, 처음부터 끝까지 같이 가는 존재이기 때문에 시작할 때 제대로 이해해 두기를 바란다.
변수 다중 할당 방법
파이썬에서 기본적으로 위에서와 같은 방법으로 변수를 지정하고 할당하는 것이 대부분이지만, 때로는 한 줄에 여려 변수에 값을 동시에 할당할 수 있고, 또는 하나의 값을 여러 개의 변수에 할당하는 경우도 있다.
# 한 줄에 사용할 변수와 동일한 수량의 값으로 선언
val1, val2, val3 = 15, 25, 35
print(val1)
print(val2)
print(val3)
위 코드의 변수 선언 방법은, 한 줄에 사용할 변수와 대입할 값으로 변수에 값을 할당하는 방식으로, 생성할 변수와 값이 동일한 수량으로 이루어져야 하며, 순서대로 값이 대입된다.
# 하나의 값을 각기 다른 변수에 대입
val_x = val_y = val_z = "https://esajin.kr"
print(val_x)
print(val_y)
print(val_z)
위 코드의 변수 선언 방법은, 한 개의 값을 각기 다른 변수에 동일하게 대입시켜, 사용해야 하는 경우, 위 코드와 같은 방식으로 변수를 선언하면 조금 더 효과적으로 코딩할 수 있다.
어떤 방법이 좋다 나쁘다의 개념이 아니라, 목적에 따라 또는 코딩하는 사람들의 성향과 조건에 따라 변수를 지정하는 방법이 달라지기 때문에, 나름대로 많은 연습을 통해 어떤 방법이 조금 더 가독성이 좋은지 판단해서 공부하면 좋을 것이다.
파이썬 상수(Constant) 란?
상수(常數)는 "변하지 않고 항상 같은 값을 가지는 수"를 말하는 것으로, 프로그래밍에서는 프로그램 실행 중에 변하지 않는 데이터를 말하는 것으로, 변수의 반대의 의미를 가지고 있다.
파이썬은 다른 프로그래밍 언어와 달리 상수를 특별히 정의하는 문법은 존재하지 않으며, 직접적으로 값을 사용하거나, 상수로 사용될 값을 변수로 지정할 때는 변수 이름을 대문자로 작성하여 명시적으로 구분하는 경우가 있는데, 이렇게 선언은 변수는 값을 변경하지 않겠다는 의미로 사용하게 된다.
여기서 변하지 않는다는 의미는 앞에서 설명해 듯이 일반적인 변수는 변수가 중간에 다른 값으로 바뀌는 경우가 많으며, 이렇게 변화는 값을 최종적으로 사용하기 때문에, 처음부터 변하지 않는 값을 사용해야 하는 경우 상수를 이용한다.
상수의 사용 예시-01
ab = 2 # ab변수에 2를 대입
print(ab * 10) # ab는 변수, 10은 상수
위 코드에서 ab
로 선언된 변수에 값 2
를 대입시키고, 변수 ab
를 상수 10
으로 곱한 값을 출력해라 라는 코드이다.
여기서 변수는 ab
이고, 10
은 상수로 변경하지 않는다는 의미이다.
상수의 사용 예시-02
# 상수 지정
PI = 3.14159
# 변수 지정
radius = 15
#계산 및 출력
print(2 * PI * radius)
여기서 PI는 변수로 지정되어 있지만, 대문자 변수명을 사용하여 통상적인 관례로 상수처럼 취급하고, 이 변수는 다르 값을 할당하지 말라는 명시적인 상수로 활용하고 있다.
이렇게라도 상수를 명시적으로 변수를 상수로 쓰는 이유는 앞에서 언급한 것과 같이 변수는 중간에 값이 변경되지만, 상수는 변경되는 값이 아니기 때문에 변하지 않는 값이라고 분명히 나타나게 하는 것이다.
그 외 typing.Final
또는 클래스(class)
를 이용해서 만들어서 사용할 수 있지만, 여기서는 활용하지 않는 방향으로 진행하겠다.ㅎ
이번 시간에는 변수와 상수에 대해서 알아보았다.
상수는 모르겠지만, 변수는 앞으로 지속적으로 사용되는 부분이기 때문에 꼭 충분히 이해하고, 다음으로 넘어가는 것을 추천한다.
눈으로 또는 한번 입력해 보고 다 이해했다고 하면 안 될 것이 앞으로 너무나 많다. ㅠㅠ
우리 같이 열심히 공부해 봅시다.
죽이 되는 것보다 밥이 되는 것을 목표로~~^^
위 내용은 공부하면서 이해한 내용과 단편적인 검색 지식으로 작성된 내용으로 글에 오류가 있을 수 있으며,
오류나 잘못된 정보가 있으면 언제든지 댓글 주시면 최대한 반영/수정하겠습니다.