jujuwon
시크릿주주
jujuwon
전체 방문자
오늘
어제
  • 분류 전체보기 (106)
    • 🔠 프로그래밍언어 (35)
      • ☕️ Java (19)
      • 🐠 Python (15)
      • 🍠 Kotlin (1)
    • 🔙 Backend (16)
      • 🌿 Springboot (12)
      • 🐳 Docker (1)
      • ☁️ AWS (3)
    • 💼 CS (12)
      • 📶 Network (12)
    • 🕹 알고리즘 (14)
      • 📑 스터디 (2)
      • 💁🏻‍♂️ 백준 (9)
      • 👨🏼‍🔬 프로그래머스 (3)
    • 📚 Book (8)
      • 🔎 오브젝트 (4)
      • 🧪 TDD (2)
      • 📜 논문 (2)
    • 🔐 보안 (7)
      • 👾 Pwnable (7)
    • 📝 회고 (4)
    • 🧩 etc. (10)
      • ⚠️ issue (2)
      • 💡 꿀팁 (7)
      • ✏️ 끄적 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

hELLO · Designed By 정상우.
jujuwon

시크릿주주

Python :: 2 - 값을 담아 다루어 보자
🔠 프로그래밍언어/🐠 Python

Python :: 2 - 값을 담아 다루어 보자

2021. 5. 28. 15:30
반응형

프로그래밍을 할 때 우리는 많은 데이터를 처리하여야 하고, 데이터를 계속해서 사용하려면

어딘가에 저장을 해두고 사용하고 싶을 때마다 꺼내서 써야 한다.

이 데이터는 메모리에 저장이 되고, 데이터가 저장된 메모리 공간에 다시 접근해서 사용하기 위해서

우리는 "변수" 를 사용한다.

변수란 메모리 공간에 이름을 붙인다고 생각하면 된다.

 

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장에서 살펴본 터틀 그래픽과 변수를 이용해 원을 그리는 간단한 예제를 살펴보자.

터틀 그래픽에 대해서 모르겠다면 다음 페이지를 살펴보자.

 

https://twix.tistory.com/6

 

[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, ' 도 입니다.')

 

섭씨온도를 입력받아 정수형으로 바꾸고 연산들을 통해 화씨온도로 바꾸는 모습이다.

우선, 사용자로부터 값을 입력받고 그것을 연산하고 출력한다는 점이 중요하다.

여기서 곱하기나 나누기 등의 연산이 사용되는데, 연산자는 다음 장에서 더 알아보기로 하자.

 

이번 장을 공부하면서 느낀 점은 다른 언어에서는 변수의 자료형을 명시해줘야 하고

한 번 선언한 자료형의 변수에 다른 자료형은 담을 수 없어서 불편한 것이 많았는데,

파이썬은 그러한 불편함이 없어서 더욱 활용하기에 간편한 점이었다.

아직은 어렵지 않은 단계이지만 여러 데이터를 다루고 처리하는 부분으로 넘어갈 수록 어렵게 다가올 수 있다.

포기하지 않고 끝까지 공부해보자 :)

 

출처 : 따라하며 배우는 파이썬과 데이터 과학 - 천인국, 박동규, 강영민

728x90
반응형
    '🔠 프로그래밍언어/🐠 Python' 카테고리의 다른 글
    • Python :: 5 - 여러 번 반복하는 일을 하자
    • Python :: 4 - 조건을 따져 실행해보자
    • Python :: 3 - 연산자로 계산을 해 보자
    • Python :: 1 - 데이터 과학과 파이썬의 세계로
    jujuwon
    jujuwon

    티스토리툴바