본문 바로가기

Data analysis story

[Python] 파이썬의 변수, 상수

안녕하세요 여러분! 추후에 하게 될 데이터 분석을 위해

이번 포스팅부터 파이썬의 기초를 차근차근 쌓는 시간을 가져 볼게요!

 

지금 R과 함께 포스팅을 하고 있는데

3개월 간 데이터 분석의 도구가 되는 R과 파이썬을 우리 함께 열심히 공부해봅시다!

 

파이썬에 대해 배워보기에 앞서 도대체 R프로그래밍, 파이썬 프로그래밍이라는 말의 프로그래밍의 뜻은 무엇일까요? 그 의미부터 정확히 알고 배웁시다!

 

우리가 컴퓨터에게 일을 시키려면 자세한 명령어(instruction) 리스트를 부여해야 하는데,

수행할 명령어를 적어 놓은 문서를 프로그램이라고 합니다.

그래서 복잡한 프로그램은 많은 문서가 쌓여 있는 하나의 book이라고 할 수 있죠.

 

그러면 프로그램은 도대체 어떻게 만들어지는 걸까요?

인간은 컴퓨터가 이해할 수 있는 유일한 언어인 기계어(machine language)를 시간의 흐름에 따라,

간의 언어에 근접한 프로그래밍 언어(programming language)로 개발했습니다. 그 중 하나가 파이썬이고 또 그 중 하나가 R인 것이죠!

 

우리가 R이나 파이썬으로 프로그래밍을 하면 우리가 짠 프로그래밍 언어만 보고는 컴퓨터가 그것을 이해하지 못합니다.

그래서 컴파일러(통역을 담당하는 소프트웨어)라는 것이 컴퓨터가 이해할 수 있는 0 1의 기계어로 바꿔준답니다!

 

사람이 생각하는 방식을 그대로 표현할 수 있는 언어인 파이썬! 무료이며 강력한 언어이니 차근차근 배워 나갑시다!

오늘 포스팅에서는 파이썬의 변수에 대해 알아보겠습니다!

 

우리가 컴퓨터에게 일을 시키려면 무엇이든 입력해야 하지 않겠어요?? 입력단계를 어떻게 구성하고 프로그래밍할 수 있을까요?

이것에 대한 답을 주는 것이 바로 변수의 역할입니다.

 

변수의 의미

 

파이썬에서 사용하는 변수는 객체를 가리키는 것이라고도 말할 수 있습니다.

객체란 무엇일까요? 객체란 파이썬의 모든 자료형을 포함해 파이썬에서 사용되는 모든 것을 뜻한답니다. (파이썬의 자료형에 대해서는 파이썬의 자료형편에서 따로 다룰게요!)

파이썬을 실행한 후

이런 코드를 입력해봅시다!


이렇게 코드를 입력하면 3이라는 값을 가지는 정수 자료형(객체)이 자동으로 메모리에 생성됩니다. a3이라는 정수형 객체가 저장된 메모리 위치를 가리키게 된다. 3이라는 정수형 객체가 저장된 매모리의 주소라고 할 수 있겠죠!

이렇듯, 변수(variable)는 값을 저장하는 공간을 의미합니다. 밑의 그림처럼 값을 저장하는 상자로 생각하면 쉽겠죠?

따라서 위의 예에서 a라는 이름을 가진 변수는 객체가 저장된 메모리의 위치를 가리키는 레퍼런스(Reference)라고 할 수 있겠죠.

그렇다면 밑의 예를 봅시다!

a3이라는 정수 자료형 객체를 가리키고 b도 똑같이 3을 가리킵니다. 그러면 앞선 변수의 정의를 참고했을 때 두 변수는 가리키고 있는 대상이 동일하지 않을까요? 맞습니다. 이 두 변수는 가리키고 있는 대상이 동일합니다. 3이라는 객체를 가리키고 있는 변수의 개수는 a b, 2개입니다. 이것을 래퍼런스 카운트(Reference Count, 참조 개수)2개라고도 한답니다!

 

변수의 생성

그러면 이제 여러 변수들을 직접 만들어봅시다!

파이썬에서 변수를 만들 때는 “=” 이라는 assignment 기호를 사용해주면 됩니다!

파이썬에서 변수는 값이 할당되는 순간에 생성됩니다.

score라는 변수를 만들어 정수 20이라는 값을 할당했습니다.

그런 후 변수를 입력하자 이 변수에 할당된 값이 출력되는게 보이시죠?

 

score라는 변수에 20이라는 값이 저장된 것입니다.

그렇다면 이렇게 score라는 변수에 20이라는 값을 할당했는데 이 값은 영영 바꿀 수 없을까요?

 

아닙니다. 변수로 지정한 다음에도 저장된 값을 지속적으로 업데이트 할 수 있습니다. 가장 최근 값으로 업데이트 되는 것이 특징입니다!!

 

, 생성된 변수에는 얼마든지 계속 다른 값을 저장할 수 있다는 뜻입니다.

이렇게 코딩을 하면 마지막으로 score를 입력했을 때 20이 아닌 30이란 값이 나오죠?

그림으로 이해해봅시다!

변수에는 다른 변수의 값 혹은 다른 변수들을 통해 계산되는 결과값도 저장할 수 있습니다.

이제까지는 계속 숫자만 변수에 할당했지만 파이썬의 변수에는 정수뿐만 아니라 실수, 문자열도 저장할 수 있는데요!

 

이렇게요!

+) 파이썬 입문자들이 가장 많이 틀리는 문제 중의 하나가 =양변이 같다고 해석하는 것인데요! 파이썬에서 = 기호는 변수에 값을 저장하라라는 의미입니다.

혼동하지 않도록 주의하세요!

등호는 ==와 같이 표시합니다.

 

변수 값 교환

변수 x에 어떤 값을 할당하고 변수 y에 어떤 값을 할당한 다음

변수 x와 변수 y값을 서로 바꾸려면 코드를 어떻게 짜야 할까요?

다음과 같은 코드는 변수 값을 교환할 수 없습니다.

잠깐 생각해서는 이렇게 하면 될 것 같은데 x에도 20, y에도 20이 할당되어 있죠? 두 개의 값이 교환되는 것이 아니라 값이 같아져 버립니다. 이를 해결할 수 있는 방법은 없을까요?

임시변수를 활용해야 합니다.

이렇게요! 두 변수의 값이 교환된 것 보이시죠?

 

변수의 이름

변수의 이름을 지정할 때는 의미 있는 이름을 사용해야 합니다.

또한 주의할 점은 소문자와 대문자는 서로 다르게 취급된다는 것입니다. New라는 변수와 new라는 변수는 다른 것입니다!

파이썬에서 변수의 이름은 영문자와 숫자, 밑줄(_)로 구성되는데요!

시작은 숫자로 할 수 없습니다. 반드시 영문자나 밑줄(_)로 시작해야 합니다.

또한 변수의 이름 중간에 공백이 들어가면 안 되고 단어를 구분하려면 밑줄(_)을 사용해야 합니다.

예시를 보도록 하죠!!

+) 낙타체

낙타체는 변수의 첫 글자는 소문자로, 나머지 단어의 첫 글자는 대문자로 적는 방법입니다.

변수가 의미하는 바를 조금 더 쉽게 알 수 있도록 하는 방법론이라고 할 수 있습니다!!

ex) myNewCar

지금까지 변수에 대해 살펴보았는데요! 그렇다면 상수는 무엇일까요?

앞서 본 변수들은 저장된 값이 계속해서 바뀔 수 있었습니다!

하지만 한번 값이 결정되면 절대로 변경되지 않는 변수를 상수라고 합니다.

즉 고정된 숫자 값을 의미하는 것이죠!

예를 들어볼게요!

제가 이렇게 3.141592PI라는 변수에 저장해 놓고 아무리 다른 변수와 다른 연산을 할 지언정 PI값을 절대 바꾸지 않고 쓴다면 이는 상수가 되겠죠!

 

 

이렇게 오늘은 파이썬의 변수와 상수에 대해 다루어보았습니다! 다음 포스팅에서는 함수에 대해 다뤄볼게요!!