확인한 환경과 범위

Windows · Python 3.12.4. 본문의 첫 예제를 실행하여 표준 출력과 예상 결과가 일치함을 확인했습니다. 연습문제의 모든 입력을 검증한 것은 아닙니다.

이 글의 순서 4개 단락

책의 페이지 수와 제목을 프로그램에서 다시 사용하려면 각각 이름을 붙여 둘 수 있습니다. 이 이름이 변수입니다. 같은 책의 정보라도 페이지 수는 숫자이고 제목은 글자이므로 값의 종류도 함께 살펴보겠습니다. 예제 환경은 Python 3.12입니다.

변수와 자료형

pages = 240은 오른쪽의 값 240을 왼쪽의 이름 pages에 대입합니다. 이후 pages를 쓰면 그 이름에 연결된 값을 사용할 수 있습니다. =는 여기서 두 값이 같은지 비교하는 기호가 아니라 대입하는 기호입니다.

이번 예제에서는 네 가지 자료형을 사용합니다. 자료형은 값의 종류를 뜻합니다.

  • int: 240처럼 소수점이 없는 정수
  • float: 4.5처럼 소수점이 있는 실수
  • str: "파이썬 첫걸음"처럼 따옴표로 감싼 문자열
  • bool: 참과 거짓을 나타내는 True 또는 False

type(값)은 해당 값의 자료형을 알려 줍니다. 숫자와 문자열에 관한 자세한 내용은 Python 3.12 공식 튜토리얼을 참고하세요.

책 정보의 값과 자료형 출력하기

다음 코드는 책의 정보를 변수에 대입한 뒤, 각 값과 type의 결과를 같은 줄에 출력합니다. print 괄호 안에 쉼표로 여러 값을 넣으면 기본적으로 값 사이에 공백을 넣어 출력합니다.

pages = 240
rating = 4.5
title = "파이썬 첫걸음"
is_read = False

print(pages, type(pages))
print(rating, type(rating))
print(title, type(title))
print(is_read, type(is_read))

변수와 값의 종류 알아보기 — 첫 예제의 실제 실행 결과

입력할 내용은 없습니다. 예상 출력은 다음과 같습니다.

240 <class 'int'>
4.5 <class 'float'>
파이썬 첫걸음 <class 'str'>
False <class 'bool'>

첫 줄에서 pages는 정수 240에 연결되어 있으므로 type(pages)는 int 자료형을 보여 줍니다. 같은 방식으로 rating은 float, title은 str, is_read는 bool입니다. 출력의 <class 'int'>는 해당 값의 자료형이 int라는 표시입니다. type의 동작은 Python 내장 함수 문서에서 확인할 수 있습니다.

헷갈리기 쉬운 값과 변수 이름

240과 "240"은 화면에 출력하면 둘 다 240으로 보이지만 자료형이 다릅니다. 따옴표가 없는 240은 정수이고, 따옴표로 감싼 "240"은 숫자 모양의 문자열입니다. 따옴표는 문자열을 코드에 적을 때 구분하기 위한 표시이므로 print의 출력에는 나타나지 않습니다.

True와 False는 첫 글자를 대문자로 써야 합니다. false는 불리언 값이 아니라 별도의 변수 이름으로 해석되므로, 미리 대입하지 않았다면 NameError가 발생합니다. "False"는 불리언이 아닌 문자열입니다.

변수 이름도 대소문자를 구분합니다. 예를 들어 pages에 대입한 뒤 Pages를 출력하면 다른 이름을 찾습니다. 영문 이름을 만들 때는 문자나 밑줄로 시작하고, 나머지에는 문자·숫자·밑줄을 사용할 수 있습니다. 2pages처럼 숫자로 시작하거나 book title처럼 공백을 넣으면 안 됩니다. 자세한 규칙은 Python 식별자 문서를 참고하세요.

변수에는 다른 값을 다시 대입할 수 있으며 자료형이 달라져도 됩니다. 예를 들어 pages에 나중에 "240"을 대입하면 그때부터 type(pages)는 str을 보여 줍니다. 따라서 값이 숫자처럼 보이는지만 살피지 말고 자료형도 확인하세요.

연습과 풀이

위 예제에서 페이지 수를 문자열 "240"으로, 읽음 여부를 True로 바꿔 보세요. 다른 값은 그대로 둘 때 첫 줄과 마지막 줄에 각각 무엇이 출력될지 먼저 예상해 보세요.

풀이에서는 대입 부분 두 줄을 다음과 같이 바꿉니다.

pages = "240"
is_read = True

첫 줄의 예상 출력은 240 <class 'str'>, 마지막 줄의 예상 출력은 True <class 'bool'>입니다. 페이지 수는 따옴표 때문에 문자열이 되었고, True는 따옴표가 없으므로 불리언입니다.

CHECK THE SOURCE

참고한 공식 문서

기능 설명은 위 문서를 참고했으며, 예제의 입력·결과와 한계는 본문에 따로 기록했습니다.

한 줄씩 이해하고, 차곡차곡 기록합니다.이 글의 오류 제보하기 ↗