파이썬 강의

파이썬 강의 2편 - 변수와 자료형

나동빈

이번 시간에 다룰 내용은 변수(Variable)와 자료형(Data Type)입니다. 기본적으로 프로그램은 값을 기억해두었다가 나중에 꺼내어 사용해야 한다는 점에서 변수라는 개념이 반드시 필요합니다.

변수 사용하기

간단한 변수부터 만들어보겠습니다.

name = "나동빈"
age = 30

print(name)
print(age)

여기에서 주의하실 점이 하나 있습니다. 바로 = 기호가 "같다"는 의미가 아니라 "넣는다" 는 의미라는 점입니다. 오른쪽에 있는 값을 왼쪽에 있는 이름에 담는 것입니다.

수학 시간에 배웠던 등호와는 다르다는 점을 먼저 받아들이시면 이후의 내용이 훨씬 편해집니다.

한 번 담은 값은 다시 바꾸어 줄 수 있습니다.

count = 1
count = count + 1
print(count)

실행 결과

2

count = count + 1 이라는 구문은 수학적으로는 성립하지 않지만, "현재 담겨 있는 값에 1을 더해서 다시 담아라"로 읽으시면 자연스럽게 이해하실 수 있습니다.

세 가지 자료형

파이썬이 다루는 값에는 여러 가지 종류가 있습니다. 처음에는 다음의 세 가지만 알고 계시면 됩니다.

종류이름예시
숫자int, float30, 3.14
문자열str"안녕", 'hello'
참·거짓boolTrue, False

특정한 값이 어떤 자료형인지 궁금한 경우에는 type() 함수를 사용하시면 됩니다.

print(type(30))
print(type("안녕"))
print(type(True))

실행 결과

<class 'int'>
<class 'str'>
<class 'bool'>

숫자와 문자열의 차이

이번 시간에서 가장 중요한 부분입니다. 다음 소스코드를 확인해봅시다.

a = 10
b = "10"

print(a + a)
print(b + b)

실행 결과

20
1010

겉으로 보기에는 같은 10 처럼 보이지만 결과가 완전히 다릅니다. 숫자끼리 더하면 계산이 수행되고, 문자열끼리 더하면 이어 붙는다는 점을 기억해주시면 됩니다.

그렇다면 숫자와 문자열을 섞으면 어떻게 될까요?

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

오류가 발생합니다. 파이썬은 숫자와 글자를 알아서 섞어주지 않는다는 점에서 직접 자료형을 바꾸어 주셔야 합니다.

print(a + int(b))      # 20
print(str(a) + b)      # 1010

사용자 입력 받기

input() 함수를 이용하면 사용자로부터 값을 입력받을 수 있습니다.

name = input("이름을 입력하세요: ")
print(name + "님 반갑습니다")

다만 여기에서 한 가지 주의하실 점이 있습니다.

age = input("나이를 입력하세요: ")
print(age + 1)       # 오류 발생

input() 함수는 사용자가 무엇을 입력하든 항상 문자열로 반환한다는 점에서, 숫자로 사용하시려면 반드시 변환해주셔야 합니다.

age = int(input("나이를 입력하세요: "))
print(age + 1)

연습 문제

  1. 이름과 나이를 입력받아 "○○님은 내년에 △△살입니다" 를 출력하기
  2. 두 개의 숫자를 입력받아 더하기, 빼기, 곱하기 결과를 각각 출력하기
  3. 원의 반지름을 입력받아 넓이를 구하기 (원주율은 3.14159 로 계산)

풀다가 막히시는 부분이 있다면 댓글로 남겨주시면 됩니다.

다음 편에서는 조건문(Conditional Statement)을 살펴보겠습니다.