본문 바로가기

코딩 이야기/프로그래밍 언어 이야기

짱 쉬운 파이썬 강좌 #2 변수

반응형

서론

 

 오늘은 파이썬 문법을 제대로 배우기 전에 익혀야 할 변수에 대해 배워보도록 하겠다. 파이썬은 변수의 개념이 다른 언어에 비해 자유로운 편(?)이라고 할 수 있다. 그 이유를 같이 배워보자.

 

https://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Python-logo-notext.svg/600px-Python-logo-notext.svg.png

 

변수? 그게 뭔데 씹덕아

 

 변수는 쉽게 말하자면 변하는 수이다. 하나의 공간을 만들고 그 공간에 내가 원하는 값을 넣었다가, 나중에 변환하거나, 출력하거나 할 수 있다. 다른 언어라면 이 변수라는 공간의 형태를 지정해줘야하지만, 파이썬의 경우, 변수에 넣는 값에 따라 변수의 형태가 자동으로 변한다.

 

변수 사용하는 예시!

 

a = 1
b = 2
print(a + b)

 

위의 코드를 보면, 출력값을 예상할 수 있을것이다. 보통 3이라고 생각할 텐데, 맞다. a라는 변수와 b라는 변수를 더한 것을 출력했기 때문이다. 우리는 a = 1 에서 "아 a가 1이구나"하고 알 수 있는데, a 라는 변수가 1이라는 값을 할당하고 있다고 생각하면 된다. 그리고 이렇게 변수를 할당한 것을 코드에 입력하는 것을 선언한다고 표현한다.

 

이제 변수를 선언하는 방법

 

변수 이름 = 할당할 값

 

변수 이름 = 할당할 값 이것이 기본적인 변수 선언 방법이다. 다른 언어의 경우 변수 이름 앞에 변수의 형태를 적어줘야 하지만, 파이썬의 경우 할당하는 값에 따라 바뀌기 때문에 적지 않는다. 그러면 이제 변수의 형태인 자료형을 알아보자.

 

자료형

 

자료형은 변수의 형태를 나타내는 것이다.

a = 1
b = 1.56
c = "bluming"
d = "블루밍"

print(a, b, c, d)

 

순서대로 a는 int(정수형), b는 float(실수형), c,d는 string(문자열) 물론 이것보다 많은 자료형들이 있지만, 나중에 따로 다루겠다.

  • int: integer의 줄임말로, 정수를 나타내는 자료형이다.

  • float: 정수와 달리 소수까지 표현가능한 자료형이다.

  • string: 문자열로 말그대로 문자를 표현가능하다. 영어 한글 상관없다.

활용하는 것을 보자면,

a = 1
b = 1.56
c = "bluming"
d = "블루밍"

print(a + b)

결과가 2.56이 나온다. 그렇다면 a + b 가 아니라 a + c를 입력하면 어떻게 될까?

 

TypeError: unsupported operand type(s) for +: 'int' and 'str'

타입 에러가 나면서 되지 않는다. 당연히 문자와 숫자는 더할 수 없기 때문.

 

a = 1
b = "2"
print(a + b)

위와 같은 경우도 타입에러가 날 것이다. a는 정수형이고 b는 문자열이기 때문. 하지만 b라는 변수를 형변환을 해준다면, 가능하다.

a = 1
b = "2"
print(a + int(b))

이런식으로 형변환을 해주면 3이라는 값을 출력하게 된다. 문자열이였던 b를 정수형으로 변환시켰기 때문.

이제 문자열을 살펴보자.

a = 1
b = 1.56
c = "bluming"
d = "블루밍"

print(c)

이런 코드는 이제 좀 쉽지 않은가? 출력값도 당연히 bluming 이 출력되겠지. 그렇다면 이렇게 바꿔보면 어떻까?

 

a = 1
b = 1.56
c = "bluming"
d = "블루밍"

print(c[0:4])

이렇게 코드를 입력하면, 어떻게 출력될 지 예상해보자...

 

답은 blum가 출력한다. 문자열은 말 그대로 문자를 나열한 것이므로, 이런식으로 몇부터 몇까지 잘라서 출력하는 것이 가능하다. 다른 예시를 보자면,

a = 1
b = 1.56
c = "bluming"
d = "블루밍"

print(c[0:4] + d[0:2])

 

이런식으로 문자열끼리는 잘라서 더하기가 가능하다.(그냥 c+d로 자르지 않아도 가능) 이러면 출력값은 'blum블루'가 출력이 될 것이다. 문자열은 이런식으로 변수 이름[시작점:끝점] 이런 식으로 자르기가 가능하다. 그리고 문자열에는 포맷팅이라 해서 문자열 사이에 숫자형 변수를 넣을 수 있다.

a = 1
b = 1.56
c = "bluming"
d = "블루밍"

print("지금 시간은 %d시" % (a))

포맷팅하는 방법은 "원하는 문자열" % (변수) 이런 식으로 사용하면 된다. 물론 문자열 사이에 내가 변수를 넣고 싶은 자리를 잡아야하는데, 그 자리를 잡아주는 것이 포맷 코드이다. 포맷 코드를 알려주자면,

  • %d : int를 담는 포맷코드

  • %f : float를 담는 포맷코드

  • %s: string을 담는 포맷코드

이렇게 있다. 그래서 위에 코드에서도 int 변수인 a를 포맷팅하기 위해 문자열에 %d이 들어가 있다. 이외에도 문자열을 활용하는 방법들이 있지만, 이정도만 알아도 어느정도 문자열을 활용가능할 것이다.

이제 좀 더 응용해보자.

 

a = 1
print(a, "번째 고객님")
a = a + 1
print(a, "번째 고객님")
a = a + 1
print(a, "번째 고객님")

 

이렇게 코드를 입력하면, 어떻게 출력해볼지 고민해보자.

먼저 답을 알려주자면, 

1 번째 고객님
2 번째 고객님
3 번째 고객님

이런 식으로 출력이 된다. 맨처음에 a 가 1이라고 선언해주고, 계속해서 a 에 a 와 1을 계속 할당해줘서, 원래 있던 값에 1을 더한 값을 a에 할당하게 되는 것이다. 이런 코드는 꽤나 자주 사용하게 될텐데, 그러면 이런 단순한 코드로 1부터 10까지 출력하려면, 코드가 너무 길어지지 않겠는가? 그래서 반복문이라는 문법이 필요하다. 반복문은 나중에 설명하도록하고, 오늘은 이정도만 설명하도록 하겠다.

 

끝맺는 말

 

코딩을 배울때는 직접 따라해보고, 자신이 생각하는대로 직접 응용해보며, 익히는 게 가장 기억속에 가장 많이 남는다. "이런식으로 코드를 입력해도 정상적으로 출력이 될까?"하는 것은 고민하지 말고 직접 해보며, 익히는 것이 가장 좋은 학습방법이라 생각한다. 자료형은 위에서 나온 것보다 더 많고, 자료형을 활용하는 방법은 위에 나온 것보다 훨씬 다양하다. 하지만 이정도만 알아도, 여러가지 할 수 있는 것이 늘어난다고 생각한다. 뭐 부족하다고 생각되면 나중에 자료형을 활용하는 함수에 대해서도 다루도록 하겠다.

반응형