Python & Data

Python 여러 개의 변수를 한꺼번에 선언, 초기화, 할당하기 feat.swap

softserve 2023. 6. 1. 09:02
반응형

1. 변수 Variable

 

변수는 말 그대로 그 값이 변할 수 있는 수를 말합니다. 수 는 숫자를 의미하는 한자이지만 프로그래밍 세계에서는 '어떤 값' 이라는 의미로 사용됩니다. 다시 말해서 변할 수 있는 어떤 값이 보관되어 있는 공간을 변수라고 합니다. 이 때 공간이란 메모리 상의 공간을 말하겠죠?

int a; // 변수 선언

int b = 10; // 선언과 동시에 초기화

a = 20; // 값을 할당

System.out.println(a + b); // 사용

언어마다 조금씩 차이가 있지만 일반적으로 변수를 사용하기 위해서는 자료형을 명시하여 선언하고, 초기화를 해주어야 합니다.

변수의 선언은 메모리 영역에서 빈 방을 찾아 이름을 붙이는 것과 같습니다. 아직 방 배정도 받지 않았는데 다짜고짜 "내 방이 어디냐!" 라고 따져묻는다면 컴파일러는 "어쩌라고!" 라는 대답밖에 할 수가 없겠지요. 전통적으로는 자료형을 명시하고 자료형에 따라서 다른 크기의 메모리 공간을 변수에 할당해왔으나, 자바스크립트나 파이썬과 같은 일부 언어들에서는 변수 선언 시 자료형을 명시할 것을 요구하지 않고 실제로 할당되는 값에 따라서 변수의 타입을 결정하기도 합니다.

변수 선언 시 임의의 메모리 공간을 잡아놓기 때문에 그 안에 무엇이 들어있는 지는 알 수 없습니다. 초기화되지 않은 변수에 들어있는 정체불명의 값을 쓰레기값이라고 합니다. 변수를 초기화함으로써 쓰레기값에 의해 에러가 발생하는 것을 방지할 수 있습니다. 새로운 손님에게 방을 내어주려면 당연히 쓰레기 정도는 치워주어야겠죠? java에서는 초기화하지 않은 변수를 사용할 때 컴파일 에러가 발생하며 python에서는 애초에 변수의 이름만을 선언할 수 없기 때문에 초기화에 대해서 따로 신경써줄 필요가 없긴 합니다.

선언과 초기화가 이루어진 다음 비로소 새로운 값을 할당(대입)하여 사용할 수 있습니다.

 

2. 변수의 동시선언과 동시할당

 

Java에서는 콤마( , )를 이용해 여러 개의 변수를 동시에 선언할 수 있습니다.

int a = 0, b = 0, c = 0;

그리고 아래와 같이 대입연산자( = )로 여러 개의 변수에 같은 값을 넣어줄 수도 있습니다.

a = b = c = 1; // c에 1을 할당하고 c를 b에 할당하고 다시 b를 a에 할당한다!

a = 1, b = 1, c = 1; // 이렇게 하면 안 됩니다! 콤마는 선언 시에만 허용됩니다.

a = 1; b = 1; c = 1; // 차라리 이렇게 하세요

 

파이썬에서는 보다 편리하게 여러 개의 변수를 동시에 선언하고 초기화할 수 있습니다.

a, b, c = 1, 2, 3

좌측에 콤마로 구분된 변수들을 나열하고 우측에 값을 순서대로 나열합니다.

이러면 각각의 값들이 해당 변수에 순서대로 할당됩니다.

이 문법을 이용하면 보다 쉽게 두 변수의 값을 서로 교환 swap 할 수 있습니다.

 

3. SWAP 하기

 

swap을 하는 전통적인 방법은 변수 하나의 값을 임시 공간에 넣어두는 것입니다. 참고(Java에서 swap하기)

int a = 10, b = 20;
temp = a;
a = b;
b = temp;
// 결과적으로 a = 20, b = 10

 

파이썬에서는 단 한 줄로 swap을 할 수 있습니다. 

a, b = b, a

변수 b에 저장된 값을 a에 할당하고 변수 a에 저장된 값을 b에 할당합니다.

반응형