안녕하세요 반갑습니다.
오늘은 "변수"에 관해 이야기를 해보려 합니다.
변수란?
사전적인 용어로는 변하는 수, 반대말로는 상수가 있다.
코딩 상의 변수도 비슷한 개념을 갖는다.
그림과 같이 표현하자면 위와 같다. 라벨이 붙어있는 박스안에 한 값을 넣는 것.
그리고 그 값은 언제든지 바뀔 수 있는 것 그것이 변수이다.
파이썬 상에서 변수를 만드는 것은 다음과 같다
예시
a = 30
b = 40
c = 50
a, b, c 라는 라벨이 붙은 변수에 각각 30, 40, 50 이라는 값을 넣어주었다.
이 "넣어줌"을 코딩상에서 "할당 (allocation)" 이라는 표현을 쓴다.
이 "할당"이라는 개념은 몹시 단순하지만 굉장히 중요하다!
왜냐면 보통 우리가 '='라는 기호를 '같다'라고 표현한다.
하지만 코드 상에서 '='는 '같다'가 아니다.
바로 '할당하다' 이다.
그림으로 좀 더 쉽게 봐보자
'할당하다' 라는 것은 오른 쪽에 있는 값을 왼쪽의 변수에 넣는 것을 말한다.
'같다'라는 개념은 '=='라고 표현하지만 이는 다음 조건문부분에서 자세히 살펴보겠다.
예시 2
이를 좀 더 깊게 이해하기 위한 코드가 있다.
a = b = 10 #(1)
c = 20 #(2)
a = c #(3)
print(a)
print(b)
print(c)
위 코드를 깊게 살펴보자
(1)
a = b = 10
아까 말했듯이 오른쪽의 값을 왼쪽 변수에 넣는 다고 했다.
그러면 오른쪽부터 차근차근
b라는 변수에 10을 할당한다.
그 다음 a 라는 변수에 b 의 값을 할당한다.
그러면 첫째 줄의 결과는 다음과 같다.
a 변수에 10이 할당되어 있고, b 변수도 마찬가지로 10이 할당되어있다.
(2)
이는 쉽다. 20이라는 값을 c 변수에 할당한다.
(3)
a 변수에 c 의 값을 할당한다. 그러면 10이라는 값이 할당되어있던 a에는 20이라는 값으로 변경되었다.
그러면 각각 결과값을 출력하면
20
10
20
이 될 것이다.
코드로 직접 확인해보자
직접 확인해본 값은 위와 같다.
자료형
이번에는 자료형에 대해 좀 알아보고자 한다.
전 강의에서 보았던 int() 메서드가 대표적인 자료형에 대한 메서드이다.
사실 파이썬에서는 자료형에 대한 이해가 크게 필요치는 않다.
그래서 자료형에 관한 것은
과 다음번에 C언어로 정리한 자료형을 적으면서 더 자세하게 얘기하고자 한다.
그래도 간단한 자료형은 알 필요가 있다.
대표적으로 자료형에는 정수형과 실수형, 문자형이 있다.
아니 잠깐, 애초에 자료형이라는 게 뭔데 그래?!
그래서 설명하고 넘어가고자 한다.
아까까지 우리는 변수에 관해 공부를 했다.
변수에 '값'을 할당한다고 배웠다.
그런 '값'에는 종류가 있는데 그 종류들을 묶어 '자료형'이라고 한다.
이전 강의인 입출력 강의에서는 말하지 않은 것이 있다.
[파이썬 코딩 강의] 입출력 (input, print)
그것은 바로 입력 메서드 input()메서드로 어떤 값을 받을 때의 자료형은 "문자열"이라는 것이다.
그럼 이게 무슨 의미란 것인가.
우리가 숫자적인 계산을 위해서는 자료형이 "숫자형"이어야 한다.
코드로 직접 확인해보는 것이 더 빠를 것 같다.
a = input("input the value")
print(a)
b = a + 10
print(b)
위 코드에서 a의 값에 10을 넣었다고 가정하자.
그러면 단순하게 보았을 때 b의 값은 a + 10 이므로 20이라고 볼 수 있다.
과연 그럴까?
이런 오류가 떠버린다.
이 오류는 자료형 오류이다.
TypeError : must be str, not int
라는 오류이다.
그 이유는 input() 메서드로 받아온 값은 "문자열 자료형" 이기 때문에 a 변수가 "문자열 자료형"이기 때문이다.
str는 문자열 자료형(String)을 뜻하고 int는 정수형 자료형(Integer)를 뜻한다.
그러면 여기서 두가지 방법이 있다.
b = a + 10이라는 코드에서 a를 int, 정수형 자료형으로 바꾸던가, 10을 문자열 자료형으로 바꾸는 것이다.
둘 다 해보겠다. 어떻게 하는 지는 코드를 한번 봐보자.
먼저 10을 문자열로 바꾸는 것이다.
문자열로 바꾸기 위해서는 10이라는 값이 아닌 문자열인 "10"이라는 값으로 대채되어야 한다.
10은 정수형 이지만 "10"은 문자열이라는 것을 알 수 있다.
이것만 알아두자. "" 안에 들어가는 값은 무조건 문자열형이다.
이러한 값이 나온다.
자세히 보면 b의 값은 우리가 원하는 20이라는 값이 아니라 1010이라는 값을 갖는다.
왜 그럴까?
그 이유는 문자열의 덧셈은 두 문자열을 붙히는 매커니즘이기 때문이다.
그러면 다음으로 a의 값을 정수형으로 바꾸는 것이다.
그 값을 정수형으로 바꾸기 위해선 int()메서드가 필요하다.
어떻게 쓰이는 지는 코드로 봐보자
우리가 원하는 값인 20이라는 값이 b에 할당된 것을 볼 수 있다.
그러면 자료형은 어떻게 코드상에서 확인할 수 있을까?
그것은 type() 메서드이다.
어떻게 사용되는 지는 코드로 보겠다.
a = input("input the value : ") #(1)
print("a type : ", type(a))
b = int(input("input the value : ")) #(2)
print("b type : ", type(b))
c = 10 #(3)
print("c : ",c,"\nc type : ", type(c)) #\n이라는 값은 줄바꿈을 뜻한다.
d = "10" #(4)
print("d : ",d,"\nd type : ", type(d)) #\n이라는 값은 줄바꿈을 뜻한다.
(1) int() 메서드를 사용하지 않은 a 변수는 type 이 str, 즉 문자열 자료형임을 알 수 있고
(2) int() 메서드를 사용한 b 변수는 type이 int, 정수형 자료형이라는 것을 알 수 있다.
c와 d 변수를 통해 ""를 쓰냐 안 쓰냐에 차이가 자료형에 어떠한 차이를 주는 지를 볼 수 있다.
""를 쓰지 않은 c 변수는 정수형 자료형임을 알 수 있고,
(4) ""를 쓴 d 변수는 문자열 자료형이라는 것을 볼 수 있다.
정리
이렇게 변수를 할당한다는 개념과 이를 어떻게 확인하는지에 대해 알아보았다.
또한 자료형에 대한 개념을 이해하는 시간이 되었다.
다음 강의에서는 입출력과 변수를 활용해서 간단한 프로그램을 만들면서 코딩의 재미를 맛보도록 하겠다.
'프로그래밍 > Python' 카테고리의 다른 글
[파이썬 코딩 강의] 파일 읽고 쓰기 (3) | 2021.02.28 |
---|---|
[파이썬 코딩 강의] 배열과 해시 (자료형 심화) (0) | 2020.11.11 |
[파이썬 코딩 강의] 반복문, 배열 (2) | 2020.11.10 |
[파이썬 코딩 강의] 조건문 (if) (0) | 2020.11.10 |
[파이썬 코딩 강의] 입출력 (input, print) (0) | 2020.11.10 |