프로그래밍을 할 때 우리는 많은 데이터를 처리하여야 하고, 데이터를 계속해서 사용하려면
어딘가에 저장을 해두고 사용하고 싶을 때마다 꺼내서 써야 한다.
이 데이터는 메모리에 저장이 되고, 데이터가 저장된 메모리 공간에 다시 접근해서 사용하기 위해서
우리는 "변수" 를 사용한다.
변수란 메모리 공간에 이름을 붙인다고 생각하면 된다.
weight = 78.2
예를 들어 자신의 몸무게를 저장해놓고, 프로그램 안에 bmi 를 구하는 등의 연산을 하기 위해
그 몸무게를 사용한다고 생각해보자.
그러면 우리는 weight 와 같은 이름의 변수를 만들고 거기다 78.2 라는 값을 저장할 수 있다.
이러한 것을 우리는 변수의 선언이라고 하고, 한 줄에 여러 개의 변수를 선언할 수도 있다.
weight, height = 78.2, 178
이런 식으로 선언하면 weight 변수에는 78.2 가, height 변수에는 178 이 저장된다.
한 번에 여러 개의 변수를 선언하고, 값을 할당하는 것을 "동시 할당문" 이라고 한다.
변수를 선언할 때 주의할 점이 있는데,
이미 예약된 단어는 사용할 수 없다. 예를 들어 return, True, for 등의 단어들이 그러하다.
변수에는 문자열도 저장할 수 있는데 문자열 데이터를 저장하는 것을 이해하기 위해선 객체에 대한 이해도 필요하다.
지금은 그냥 "변수에 문자열도 저장할 수 있다" 만 알고 넘어가도록 하자.
helloStr = "Hello World!"
helloStr 이라는 변수에 문자열을 저장했다.
파이썬은 미리 정의된 함수들을 제공하고 있어서 편하게 사용할 수 있다.
예를 들어, 문자열의 길이를 알고 싶을 때는 len() 이라는 함수를 사용하면 된다.
helloStr = "Hello World!"
length = len(helloStr)
print(length)
다음과 같이 코드를 작성하면 legnth 라는 변수에 helloStr 문자열의 길이인 12가 저장되고,
length 변수를 출력하면 12 가 출력됨을 확인할 수 있다.
다음과 같이 변수를 사용하면 여러가지 연산들을 할 때 저장된 값을 이용한다는 점이 편리한데,
체중과 키를 이용해 bmi 를 구하는 예제를 통해서 한 번 더 확인해보자.
height = 1.80
weight = 78.2
bmi = weight / height**2
print(bmi)
bmi 는 체중(kg)을 키(m)의 제곱으로 나누면 구할 수 있다.
코드를 살펴보면 height 변수에 키 정보를 담고, weight 변수에 몸무게 정보를 담는다.
height**2 는 height 변수의 값을 제곱한다는 뜻이고, '/' 연산자는 나누기를 진행한다.
결과적으로 bmi 변수에는 체중을 키의 제곱으로 나눈 값이 저장되고, print() 를 통해 bmi 값이 출력된다.
변수를 사용하는 이유가 한 가지 더 있다.
이런 식으로 bmi 를 계산하는 프로그램에서 체중이 바뀌었다고 해서 다시 프로그램을 만들 필요 없이,
체중에 해당하는 변수의 값만 바꿔주면 원하는 결과를 얻을 수 있다는 점이다.
그러면 1장에서 살펴본 터틀 그래픽과 변수를 이용해 원을 그리는 간단한 예제를 살펴보자.
터틀 그래픽에 대해서 모르겠다면 다음 페이지를 살펴보자.
[Python] 1 - 데이터 과학과 파이썬의 세계로
twix.tistory.com
터틀 그래픽에서 원을 그리기 위해서는 circle() 이라는 함수를 사용하면 된다.
괄호 안에 반지름 길이를 넣어주면 그 길이를 반지름으로 가지는 원을 그린다.
그렇다면 우리는 반지름의 길이에 해당하는 값을 변수에 저장해두고,
원의 크기를 바꾸고 싶을 때, 변수에 저장되어 있는 값만 변경해주면 된다.
import turtle
t = turtle.Turtle()
t.shape('turtle')
radius = 100
t.circle(radius)
radius = 200
t.circle(200)
turtle.done()
radius 라는 이름의 변수에 반지름 길이를 저장해두고,
100을 넣고 한 번, 200으로 값을 변경하고 한 번 원을 그린다.
이 코드를 실행하면 다음과 같은 결과를 얻을 수 있다.
그렇다면 이제 변수의 "자료형"에 대해서 얘기를 해보자.
자료형이란 "프로그램에서 사용할 수 있는 데이터의 종류"를 말한다.
예를 들면 1이나 2 같은 수는 정수(Integer), 3.14 같은 수는 실수(Floating-point),
'Hello World' 와 같은 문자열 등이 있다.
각각의 자료형마다 데이터가 메모리에 저장될 때 차지하는 공간의 크기도 다르고,
연산할 때 작동하는 방식도 다르기 때문에 이 자료형을 잘못 지정하면 오류가 나게 된다.
다른 프로그래밍 언어인 C언어, JAVA 에선 변수의 자료형을 지정해준다.
하지만 파이썬에서는 자료형을 지정하지 않아도 알아서 자료형을 결정해준다.
예를 들어 C 언어에서 정수형 데이터를 저장하기 위해서는
int num = 1;
이와 같이 int 라는 키워드를 변수 앞에 입력해 자료형을 지정해주는 반면
파이썬은 "변수명 = 정수 데이터" 만 적어도 정수형으로 인식하여 저장한다.
또한 위 C코드에서 선언된 num 변수에는 다른 자료형의 데이터를 담을 수 없지만,
파이썬에서는 변수 안에 어떤 종류의 자료를 저장해도 된다.
num = 1 #정수 1 저장
num = 3.14 #실수 3.14 저장
위 코드는 정수 데이터를 저장하였다가 나중에 실수 데이터를 저장하는 모습이다.
현재 변수가 어떤 자료형인지 알기 위해서는 type() 이라는 함수를 적용하면 된다.
weight = 78.2
print(type(weight))
위와 같이 weight 변수에 실수형 데이터를 담고 type(weight) 를 호출한다.
그리고 호출결과를 print 하면
다음과 같이 'float' 라고 알려준다.
float 는 실수를 의미한다.
이제 자료형에 대해서도 알아봤으니,
사용자로부터 정수형, 문자열 데이터를 입력받는 프로그램을 한 번 만들어보자.
사용자에게서 데이터를 입력받기 위해서는 input() 이라는 함수를 사용하면 된다.
input() 함수는 사용자의 입력을 문자열 형태로 반환한다.
사용하는 방법은 아래 코드와 같다.
inputString = input('문자열을 입력하세요 : ')
input() 괄호 안에 문자열을 넣을 수 있는데 괄호 안의 문자열은 화면에 출력되고,
사용자의 입력을 기다리는 상태가 된다.
이후 사용자가 입력을 하고 엔터키를 누르면, input() 함수는 입력한 문자들을 하나의 문자열로 만들어 반환한다.
위 코드를 확인하면 문자열을 input() 함수를 이용해 이름을 입력받고,
입력받은 이름을 출력하고 있음을 알 수 있다.
그렇다면 정수를 입력받으려면 어떻게 하면 될까?
input() 함수를 이용해 입력받은 값은 문자열이라고 언급했는데, 이 문자열을 정수로 바꿔주면 된다.
정수로 자료형을 바꿔주려면 아래 코드와 같이 int() 를 이용하면 된다.
num = int(input('숫자를 입력하세요 : '))
input() 함수를 이용해 입력받은 값이 문자열로 반환되는데, 그것을 int() 로 감싸주면
문자열이 정수로 반환된다.
그렇다면 이것을 종합해 현재온도(섭씨온도)를 사용자로부터 입력받고,
섭씨온도를 화씨온도로 바꾸는 프로그램을 만들어보자.
(섭씨온도를 화씨온도로 바꾸는 식은 다음과 같다. 화씨온도 = 9/5 X 섭씨온도 + 32)
cel = int(input('섭씨온도를 입력하세요 : '))
fah = (9/5) * cel + 32
print('섭씨 ', cel, ' 도는 화씨 ', fah, ' 도 입니다.')
섭씨온도를 입력받아 정수형으로 바꾸고 연산들을 통해 화씨온도로 바꾸는 모습이다.
우선, 사용자로부터 값을 입력받고 그것을 연산하고 출력한다는 점이 중요하다.
여기서 곱하기나 나누기 등의 연산이 사용되는데, 연산자는 다음 장에서 더 알아보기로 하자.
이번 장을 공부하면서 느낀 점은 다른 언어에서는 변수의 자료형을 명시해줘야 하고
한 번 선언한 자료형의 변수에 다른 자료형은 담을 수 없어서 불편한 것이 많았는데,
파이썬은 그러한 불편함이 없어서 더욱 활용하기에 간편한 점이었다.
아직은 어렵지 않은 단계이지만 여러 데이터를 다루고 처리하는 부분으로 넘어갈 수록 어렵게 다가올 수 있다.
포기하지 않고 끝까지 공부해보자 :)
출처 : 따라하며 배우는 파이썬과 데이터 과학 - 천인국, 박동규, 강영민