Python/파이선과 친해지기

[Python] - Python과 친해지기-변수와 연산

변수란

변수(variable)는 컴퓨터 프로그래밍에서 아직 알려지지 않거나 어느 정도까지만 알려져 있는 양이나 정보에 대한 상징적인 이름이다.

 

프로그래밍에서 변수의 정의는 위와 같다. <변하는 값>이라고도 말할 수 있으며, 사실상 코드는 작성하면서 사용하게 될 상수를 제외한 모든 값들을 변수라고 보면 좋을 거 같다.

 

예를 들어 '어떠한 값의 3을 더하는 프로그램을 만드시오' 라는 과제가 있으면, 이 어떠한 값은 정해지지 않은 것이니, 변하는 값 즉 변수라는 것을 알 수 있다. 그러면 Python의 변수는 어떻게 만들고, 사용할 수 있을까?

 

 

변수의 정의와 사용

 

우선은 어떠한 값을 담고 있는 변수의 이름부터 지어주어야한다. 이름을 짓는 데는 다음과 같은 규칙이 사용된다.

변수의 이름은 영어, 숫자, 언더바로만 구성된다.(단 숫자와 언더바는 영어와 조합하여야 한다.)

즉 a, _REDUCTO, ABC_123 등이 가능한 변수의 이름이 된다. 

 

또한 Python에서 변수는 다른 프로그래밍 언어에서 보면 생성과 동시에 초기화(initialize)된다. 풀어 설명하면 변수의 이름이 생성되는 동시에 특정한 값을 할당받는다는 것을 의미한다. 아래는 변수의 정의의 예시이다.

>> a = -3

>> _REDUCTO = "ddd"
## Python에서 변수는 어떠한 형태도 담을 수 있다

>> ABC_123 = _REDUCTO
## 위와같은 이유로 변수에 다른 변수를 담는것도 허용된다.

 * ##는 주석(Comment)을 의미한다. 주석은 프로그램 동작에 포함이 되지 않는 프로그래머의 설명문으로 코드의 생성일, 저작권, 사용법 등이 적힌다. 주석에 대한 자세한 내용은 추후 포스팅하겠습니다.

 

이렇게 변수를 정의했으면 우리는 변수를 사용할 수 있다. 앞서 사용했던 print("Hello World")의 "Hello Worlds"(정해진 상수)를 우리 변수로 바꾸어 작성해보자

>> print(a)
-3

>> print(_REDUCTO)
"ddd"

>> print(ABC_123)
"ddd"

 

사칙연산

 

Python은 다양한 사칙연산을 지원한다. 전 글에서 보았던 간단한 +,-,/,* 뿐만 아니라 다음과 같은 연산자를 지원한다.

연산자 설명 예시
+ 더하기 10+3 = 13
- 빼기 10-3 = 7
* 곱하기 10*3 =30
/ 나누기 10/3 = 3.33...
% 나머지 10%3 = 1
** 제곱 10**3 = 1000
// 10//3 = 3

다음과 같은 코드를 통해서 사칙연산을 조금 더 깊게 알아보자. 바로 위의 변수의 내용까지 담고 있으니, 직접 코딩해보는 것을 추천한다.

>> a=3
>> b=5
>> c=a*b
## 여기서 a=3, b=5, c=15가 된다.

>> print(a+b)
8

>> print(c*b+a)
78

>> a = a+3
## 여기서 a는 기존 a에 3이 더해진 6이 된다.

마지막 a=a+3을 보자. 수학에서 "="은 같다를 의미하지만, 프로그래밍 세상에서 =은 대입을 의미한다.

무심코 사용했던 a=3이나 b=5도 각각 a에 3을 대입한다. b에 5를 대입한다의 의미를 가지고 있는 것이다.

이 대입에는 규칙이 있는데 항상 "오른쪽을 왼쪽에 대입한다." 즉 a=a+3 은 기존 a에 3 더한 값을 새로 a에 대입한다는 의미를 가진다. 대부분의 프로그래밍 언어는 이렇게 기존의 값을 쉽게 바꾸는 연산자를 제공한다. 바로 +=, -=, *=, /=이다, a+=3 은 a = a+3과 같은 의미, b-=9는 b = b-9와 같은 의미를 가진다. 

 

독특한점은 문자열에 대해서 "+"와 "*"연산이 동작한다는 점이다. 다음의 코드를 보자

>> a = "AAA"
>> a = a+"BBB"
>> print(a)
"AAABBB"

>> a = "ABC"
>> a = a*3
>> print(a)
"ABCABCABC"

 

비교 연산 

비교 연산은 두 수의 크기, 같음과 다름 여부를 계산해주는 연산자로 참(True)과 거짓(False)을 판단한다.

연산자 설명 조건 결과
>, >= 크거나 (같음) 3>5 False
<, <= 작거나 (같음) -1<4 True
== 같음 3+7==10 True
!= 다름 "aaa"!="aab" True

*==의 조건과 결과로 "사칙연산을 비교 연산보다 우선한다"는 것을 알 수 있다.

 

비교 연산은 논리 연산과 같이 사용되는 경우가 많다, Python에서 AND의 연산자는 and이고, OR의 연산자는 or, 같음의 연산자는 is, 다름의 연산자는 not 등이 쓰인다.

* 위 연산의 설명의 자세한 건 논리와 이산수학 부분에 포스팅 예정이니 모르는 사람은 구글링, 포스팅을 확인하고 오는 것이 좋다.(굉장히 중요한 내용이다!) 

 


이렇게 Python에서 변수의 정의와 사용, 연산의 종류인 사칙연산과 비교 연산에 대해 알아보았다. 이외에도 비트 연산 등이 추가로 사용되나, 사실 비트 연산이 사용되는 경우는 위 연산들에 비하면 적을 뿐 아니라 이해에 논리 연산의 이해가 필요하니 사용하게 될 때 자세한 설명을 하도록 하겠다.

 

 

이렇게 Python에서 변수의 정의와 사용, 연산의 종류인 사칙연산과 비교연산에 대해 알아 보았다. 이외에도 비트연산등이 추가로 사용되나, 사실 비트연산이 사용되는 경우는 위 연산들에 비하면 적을뿐아니라, 이해에는 논리연산의 이해가 필요하니 사용하게 될 때 자세한 설명을 하도록 하겠다. 다음 시간에는 기본자료형과 형변환을 알아보도록 하겠다.