Python / Google Colab / Data types

2주차 1교시: 코드 실행과 자료형

사람의 의도를 데이터와 명령으로 표현하고, 숫자·글자·참·거짓이 서로 다르게 처리되는 방식을 살펴봅니다.

좌표 점, 막대, 파형과 Python 코드가 함께 구성된 데이터 아트
의도에서 코드로, 코드에서 출력으로 이어지는 이번 주 학습 흐름

코드 실행 흐름과 자료형 구분

핵심 개념
데이터, 명령, 자료형
자료형
int, float, str, bool
확인 방법
print(), type()
다음 학습
변수와 대입

학습 목표

  1. 데이터, 명령, 코드, 프로그램, 출력의 구분과 설명
  2. 간단한 Python 코드의 순차적 실행 흐름 추적
  3. 값의 표기와 역할, type() 결과를 통한 int, float, str, bool의 구분
  4. 3 + 2"3" + "2"의 결과 예측 및 자료형에 따른 차이 설명
  5. Colab에서 print()type() 실행 및 결과 확인

학습 내용

핵심 내용

이번 교시에는 코드가 실행되는 순서를 따라가며 값의 종류를 구분합니다. 이렇게 구분한 값에 이름을 붙여 다시 사용하는 변수와 대입은 2교시에서 이어서 다룹니다.

입력·규칙·출력

1주차 OT에서는 수업의 전체 흐름과 앞으로 다룰 내용을 살펴보았습니다. 이번 시간부터는 Python 코드를 직접 읽으며 컴퓨터에 무엇을 주고, 어떤 규칙으로 처리하고, 무엇이 결과로 나타나는지 확인합니다.

컴퓨터 화면에 “안녕하세요. 저는 정호이고 시각디자인을 전공합니다”라는 문장을 띄우려면, 컴퓨터에 알려줘야 할 것은 정보행동 두 가지입니다. 정보의 예는 이름과 전공이고, 행동의 예는 그 정보를 문장으로 화면에 표시하는 일입니다.

핵심 구분

이름과 전공은 컴퓨터가 처리할 데이터이고, 화면에 표시하기는 그 데이터로 무엇을 할지 지시하는 명령입니다. 프로그램은 데이터와 명령을 컴퓨터가 실행할 수 있도록 정확한 순서로 작성한 코드의 묶음입니다.

자기소개 예제의 구조

자기소개 예제의 입력·규칙·출력
구분의미자기소개 예시
입력프로그램이 처리할 데이터이름과 전공
규칙데이터를 처리하는 명령과 순서이름과 전공을 문장으로 표시하기
출력코드를 실행해 얻는 결과화면에 나타난 자기소개 문장

여기서 입력은 Python의 input() 함수를 뜻하지 않습니다. 프로그램이 처리하도록 주어진 데이터를 가리킵니다. 키보드로 값을 입력받는 input() 함수는 이후 수업에서 다룹니다.

“나를 소개하고 싶다”라는 의도만으로는 컴퓨터가 그 문장을 알아서 만들지 못합니다. 데이터와 명령을 규칙에 맞게 작성하고 실행해야 결과가 나타납니다.

데이터·명령·실행 결과

프로그램 실행의 기본 용어

데이터는 컴퓨터가 처리하는 정보 전체를 가리키고, 은 코드에서 실제로 처리하는 하나의 구체적인 데이터입니다. 이름이라는 데이터는 코드에서 "정호"라는 값으로 나타납니다.

데이터와 명령을 Python 문법으로 적으면 코드가 됩니다. 특정 목적에 맞게 코드를 구성한 전체가 프로그램이고, 이를 실행해 얻은 결과가 출력입니다.

프로그램 실행의 기본 용어
용어정확한 의미자기소개 예시
데이터컴퓨터가 읽고 처리하는 값"정호", "시각디자인"
명령컴퓨터가 수행할 작업이름과 전공을 화면에 표시하라
코드데이터와 명령을 프로그래밍 언어로 적은 것print("이름:", "정호")
프로그램하나의 목적에 맞게 구성한 코드 전체이름과 전공을 출력하는 두 줄의 코드
출력프로그램을 실행해 얻은 결과이름: 정호, 전공: 시각디자인
1 / 목표무엇을 만들 것인가

내 이름과 전공을 화면에 표시한다.

2 / 코드 작성Python으로 표현하기

print("이름:", "정호")
print("전공:", "시각디자인")

3 / 실행명령을 차례로 수행하기

Python이 작성된 순서에 따라 두 명령을 수행한다.

4 / 출력화면에서 결과 확인하기

이름: 정호
전공: 시각디자인

목표만으로는 출력이 생기지 않습니다. 목표를 Python 코드로 정확하게 작성하고 실행해야 화면에 결과가 나타납니다.

Python 인터프리터의 역할

Python은 사람이 비교적 읽기 쉬운 형태로 컴퓨터에 명령을 표현하는 프로그래밍 언어입니다. 사람은 메모에 생략된 내용을 문맥으로 짐작할 수 있지만, Python 실행 환경은 문맥을 짐작하지 않습니다. 작성된 기호를 Python 문법에 따라 해석합니다.

Python 실행 환경은 우리가 작성한 코드를 해석하고 처리합니다. 여기서 실행은 화면에 코드를 적어두는 것이 아니라, 작성된 명령을 실제로 수행하게 하는 일입니다.

코드 실행 순서

Python은 코드를 정해진 순서에 따라 위에서 아래로 실행합니다. 앞선 명령의 결과가 반영된 뒤 다음 명령을 실행합니다. 빈 줄은 코드를 읽기 쉽게 구분할 뿐, 별도의 명령으로 실행되지는 않습니다.

실행 단위

코드를 정확하게 작성했지만 실행하지 않았다면 출력이 생길까요? 생기지 않습니다. 작성된 코드와 실행된 코드는 구분해야 합니다.

코드 추적

아래 코드를 아직 외울 필요는 없습니다. 각 줄이 화면에 무엇을 보여주는지 순서대로 읽는 것이 먼저입니다. 값에 이름을 붙이는 방법은 2교시에서 다룹니다.

print("이름:", "정호")
print("전공:", "시각디자인")
1print("이름:", "정호")항목명과 이름을 한 줄에 출력합니다.
2print("전공:", "시각디자인")항목명과 전공을 한 줄에 출력합니다.
코드를 읽을 때에는 각 줄이 실행된 직후 화면에 무엇이 나타나는지 추적합니다.

print()는 Python이 미리 제공하는 함수입니다. 함수는 특정 작업을 수행하도록 준비된 기능이며, print(...)처럼 함수 이름 뒤에 괄호를 붙여 사용합니다. 괄호 안에는 출력할 값이나 계산식을 넣습니다.

print("이름:", "정호")의 구성 요소
표기역할실행할 때
print화면에 값을 출력하는 함수의 이름출력 기능을 찾습니다.
(...)함수에 전달할 내용을 묶는 괄호괄호 안의 값을 함수에 전달합니다.
,여러 값을 나누는 쉼표각 값 사이에 기본적으로 공백을 넣어 함께 출력합니다.

아래 왼쪽 코드는 글자 "정호"를 출력하고, 오른쪽 코드는 3 + 2를 먼저 계산한 뒤 그 결과를 출력합니다.

글자 출력
print("정호")

정호

계산 결과 출력
print(3 + 2)

5

따옴표와 문자열

print("정호")를 실행하면 따옴표 안의 정호가 출력됩니다. 따옴표는 글자 데이터임을 표시할 뿐, 화면에는 나타나지 않습니다.

Python에서는 큰따옴표를 쓴 "정호"와 작은따옴표를 쓴 '정호'를 모두 문자열로 읽습니다. 이 수업의 예제에서는 표기를 일관되게 보기 위해 큰따옴표를 사용합니다.

print(정호)처럼 따옴표를 빼면 Python은 정호라는 이름에 연결된 값을 찾습니다. 아직 그런 이름이 없으면 오류가 납니다. 이름을 만드는 변수는 2교시에서 배웁니다.

순차 실행

명령은 위에서 아래로 실행됩니다. 위에 있는 줄을 먼저 실행한 뒤 다음 줄로 넘어가므로 줄의 순서를 바꾸면 출력 순서도 달라집니다.

이름 먼저
print("정호")
print("시각디자인")

결과: 정호가 먼저, 시각디자인이 다음에 출력됩니다.

전공 먼저
print("시각디자인")
print("정호")

결과: 같은 값이라도 줄 순서가 바뀌면 화면 순서도 바뀝니다.

코드 표기와 실행 순서

Python은 따옴표, 괄호, 값의 표기, 줄 순서를 모두 코드의 일부로 읽습니다. 코드를 실행하기 전에 아래 네 부분을 확인합니다.

코드 추적의 네 요소
확인할 부분이렇게 읽기달라지면
"정호"의 따옴표정호를 글자로 읽습니다.따옴표가 없으면 변수 이름으로 읽습니다.
print(...)의 괄호괄호 안의 값을 print()에 전달합니다.괄호가 닫히지 않으면 SyntaxError가 납니다.
3"3"앞은 숫자, 뒤는 글자로 읽습니다.+를 처리한 결과가 달라집니다.
위아래 줄 순서위의 명령부터 한 줄씩 실행합니다.화면에 출력되는 순서도 바뀝니다.

기본 자료형

자료형은 Python이 값을 어떤 종류로 읽을지 정하는 기준입니다. 자료형을 알면 값의 의미, 사용할 수 있는 연산, 연산 뒤에 나올 결과를 예상할 수 있습니다.

자료형 확인 절차

  1. 따옴표, 소수점, TrueFalse 같은 표기 단서를 찾습니다.
  2. type()으로 Python이 실제로 판단한 자료형을 확인합니다.
  3. 자료형을 근거로 연산 결과나 오류를 예측합니다.

자료형의 표기

값의 내용이 비슷해 보여도 코드에 적는 방식이 다르면 자료형이 달라집니다. 먼저 각 자료형의 표기 단서와 쓰임을 하나씩 확인합니다.

int 정수
0-3120

양수, 음수, 0처럼 소수 부분이 없는 수를 나타냅니다. 이번 수업의 예제에서는 소수점 없이 적습니다.

표기 단서
이번 수업의 예제에서는 숫자에 소수점이 없습니다.
주요 쓰임
개수, 순서, 픽셀 좌표
실행 예
3 + 25
float 실수
0.753.5-1.2

소수 부분이 있는 수를 나타냅니다. 이번 수업의 예제에서는 소수점을 포함해 적으며, 20.0float입니다.

표기 단서
이번 수업의 예제에서는 숫자에 소수점이 있습니다.
주요 쓰임
비율, 투명도, 시간
실행 예
3.0 + 2.55.5
str 문자열
"정호""blue""20"

따옴표 안에 적은 글자의 묶음입니다. 숫자처럼 보여도 따옴표 안에 있으면 문자열입니다.

표기 단서
내용의 앞뒤에 따옴표가 있습니다.
주요 쓰임
이름, 제목, 색상명
실행 예
"3" + "2""32"
bool 불리언
TrueFalse

참과 거짓의 두 상태를 나타냅니다. Python에서는 첫 글자를 반드시 대문자로 적습니다.

표기 단서
True 또는 False입니다.
주요 쓰임
켜짐과 꺼짐, 조건의 결과
실행 예
print(True)True

불리언의 역할

정수와 실수는 수량을, 문자열은 글자 정보를 나타냅니다. 불리언은 이들과 달리 어떤 상태가 성립하는지를 나타냅니다. 즉, “얼마인가?”나 “무엇인가?”가 아니라 “그런가?”라는 질문에 True 또는 False로 답하는 자료형입니다.

True는 ‘정답’, False는 ‘오류’를 뜻하지 않습니다. 두 값은 프로그램이 확인하려는 상태에 대한 예와 아니요를 구분합니다. 프로그램은 이 구분을 바탕으로 화면에 요소를 표시하거나 숨기고, 기능을 실행하거나 멈추는 등 다음 행동을 결정할 수 있습니다.

이미지 표시, 소리 재생, 작업 완료를 나타내는 세 개의 조정 스위치가 각각 활성 상태와 비활성 상태를 구분하고, 아래 결과 화면으로 연결된 모습
상태의 기록각 스위치는 이미지 표시, 소리 재생, 작업 완료 여부를 TrueFalse로 구분합니다. 행동의 결정프로그램은 저장된 상태에 따라 표시·재생·다음 단계 같은 행동을 선택합니다.
불리언으로 표현하는 상태와 동작
상태 질문TrueFalse프로그램에서의 활용
이미지를 표시할 것인가?표시 상태숨김 상태이미지의 표시 여부 결정
소리를 재생할 것인가?재생 상태정지 상태소리의 재생 여부 결정
작업이 완료되었는가?완료 상태미완료 상태완료 안내나 다음 단계의 표시 결정

이후 조건문을 배우면 프로그램이 불리언 값을 확인해 서로 다른 행동을 선택하는 코드를 작성합니다. 이번 시간에는 TrueFalse가 글자가 아니라 두 상태를 구분하는 값이라는 점까지 이해합니다.

유사 값의 자료형 비교

사람에게는 비슷하게 보이는 값도 Python은 표기에 따라 다르게 읽습니다. 따옴표와 소수점을 먼저 확인합니다.

겉으로는 모두 20으로 보이는 두 값을 판독기에 통과시키자 한쪽은 숫자 블록, 다른 쪽은 글자 타일로 구분되는 모습
같은 출력20"20"은 화면에 모두 20처럼 보일 수 있습니다. 다른 자료형type()은 숫자로 저장된 int와 글자로 저장된 str을 구분합니다.
표기에 따른 자료형 해석
코드에 적은 값자료형Python이 읽는 방식
20int소수점이 없는 숫자 20
20.0float소수점이 있는 숫자 20.0
"20"str글자 20의 묶음
Truebool참을 나타내는 상태
"True"str네 글자로 이루어진 문자열
먼저 예측

"20.0"에는 소수점이 있지만 따옴표 안에 있습니다. Python은 이 값을 숫자가 아닌 str로 읽습니다.

type() 함수

표기로 자료형을 예상한 뒤 type()으로 Python의 판단을 확인합니다. 확인할 값을 type()의 괄호 안에 넣고, 결과를 보기 위해 바깥에서 print()로 출력합니다.

print(type(20))
print(type(20.0))
print(type("blue"))
print(type(True))
<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>

지금은 class의 자세한 의미를 외울 필요가 없습니다. 출력의 마지막에 있는 int, float, str, bool이 우리가 확인할 자료형 이름입니다.

출력과 자료형의 차이

print(20)print("20")은 화면에 모두 20을 출력합니다. 따옴표는 화면에 나타나지 않기 때문에 출력 모양만으로는 두 값을 구분할 수 없습니다. 앞의 값은 int, 뒤의 값은 str이며, 이 차이는 type()으로 확인합니다.

연산 결과와 자료형

Python은 연산 기호와 함께 양쪽 값의 자료형을 확인합니다. 같은 +라도 숫자에는 덧셈을, 문자열에는 연결을 적용합니다.

숫자 덧셈
print(3 + 2)

5

int 두 개를 더해 새 int를 만듭니다.

문자열 연결
print("3" + "2")

32

str 두 개를 앞뒤로 이어 새 str을 만듭니다.

자료형별 연산 결과
코드결과결과 자료형이유
10 + 515int정수끼리 더합니다.
3 + 2.55.5float실수가 포함되어 결과에도 소수점이 생깁니다.
10 / 25.0float/로 나눈 결과는 실수입니다.
"data" + " art""data art"str문자열을 앞뒤로 연결합니다.
"ha" * 3"hahaha"str문자열을 세 번 반복합니다.

자료형 불일치와 TypeError

자료형 불일치

"20" + 1에서 "20"str이고 1int입니다. 서로 호환되지 않는 자료형에는 해당 연산을 적용할 수 없으므로 TypeError가 발생합니다.

계산하려면 두 값의 자료형을 목적에 맞게 바꿔야 합니다. 자료형 변환은 이후 수업에서 다룹니다.

자료형 예측 절차

코드를 바로 실행하지 말고 양쪽 값의 자료형 → 연산의 의미 → 최종 결과를 차례로 적어봅니다.

개념 점검

결과와 자료형을 먼저 적어봅니다

  1. 8 + 2.0의 결과와 자료형은 무엇인가?
  2. "8" + "2"의 결과와 자료형은 무엇인가?
  3. "go" * 2의 결과와 자료형은 무엇인가?
  4. 8 + "2"는 결과가 나오는가, 오류가 나는가?
정답 및 해설
  1. 10.0, float
  2. "82", str
  3. "gogo", str
  4. intstr을 바로 더할 수 없어 TypeError가 납니다.

Colab 실행 실습

앞서 살펴본 코드를 이제 직접 실행합니다. 3교시 미션을 완성하는 시간이 아니라, 코드 셀 하나를 실행해 결과가 나오는지 확인하는 시간입니다.

Python과 Google Colab의 관계

Python은 코드를 작성하는 데 쓰는 프로그래밍 언어이고, Google Colab은 브라우저에서 Python 코드를 작성하고 실행하는 노트북 환경입니다. Colab 노트북에는 설명, 코드, 결과를 한 문서에 함께 남길 수 있습니다.

Notebook document
텍스트 셀제목, 설명, 관찰 내용을 기록합니다.
코드 셀Python 코드를 작성하고 실행합니다.
출력 영역문장, 숫자, 표, 이미지 또는 오류가 나타납니다.
Python runtime
  1. 실행한 코드 셀을 전달받습니다.
  2. 괄호 안의 값과 계산식을 처리합니다.
  3. 결과 또는 오류를 노트북에 표시합니다.
노트북 파일은 코드와 기록을 저장하고, 런타임은 그 코드를 실제로 실행합니다.

Colab의 셀 출력

Colab은 코드 셀의 마지막에 값이나 계산식만 적어도 결과를 보여줄 수 있습니다. 그러나 여러 결과를 명확하게 확인하기 위해 이번 주에는 print()를 사용합니다.

print()·type() 실행

  1. Google 계정으로 Colab에 접속합니다. 처음 접속했다면 요청되는 권한을 확인하고 허용합니다.
  2. 왼쪽 위 제목을 week02-period1-자기이름으로 바꿉니다.
  3. 코드 셀에 아래 여덟 줄을 그대로 적습니다.
  4. Shift+Enter 또는 셀 왼쪽 ▶ 버튼으로 실행합니다.
  5. 출력에서 네 자료형의 이름과 5, 32를 찾습니다.
  6. "정호"를 자기 이름으로 바꾸고 다시 실행합니다.
  7. Ctrl+S 또는 Cmd+S로 노트북을 저장합니다.
print("이름:", "정호")
print("전공:", "시각디자인")
print(20, type(20))
print(20.0, type(20.0))
print("20", type("20"))
print(True, type(True))
print(3 + 2)
print("3" + "2")

이름: 정호
전공: 시각디자인
20 <class 'int'>
20.0 <class 'float'>
20 <class 'str'>
True <class 'bool'>
5
32

실습 점검

  • 셀 왼쪽에 별이 계속 돌면 런타임이 연결 중이거나 코드를 실행 중입니다. 잠시 기다립니다.
  • 따옴표나 괄호가 닫히지 않았는지 확인합니다.
  • 3교시 미션 노트북은 아직 열지 않습니다. 오늘은 빈 노트북 하나로 충분합니다.

핵심 정리

  • 데이터와 명령의 차이를 한 문장으로 설명할 수 있습니다.
  • 네 가지 자료형을 구분하고 type()으로 확인할 수 있습니다.
  • 빈 Colab 노트북에서 코드를 실행해 출력을 확인했습니다.

학습 내용 점검

새로운 내용을 추가로 배우는 구간이 아니라, 이번 교시의 핵심 내용을 세 단계로 확인하는 구간입니다. 각 단계의 완료 기준을 먼저 확인한 뒤 순서대로 진행합니다.

학습 내용 점검 기준
단계점검 내용완료 기준
01코드 실행 개념데이터·명령·출력을 구분하고 순차 실행의 의미를 설명
02자료형과 연산네 자료형을 구분하고 자료형에 따른 연산 결과를 예측
03오류 해석TypeError의 원인과 먼저 확인할 자료형을 파악

01 코드 실행 개념

각 질문에 자신의 말로 먼저 답한 뒤 항목을 열어 해설과 비교합니다.

1. 데이터, 명령, 출력은 어떻게 다른가?

데이터는 프로그램이 처리하는 정보이고, 명령은 그 데이터로 무엇을 할지 컴퓨터에 지시하는 내용입니다. 출력은 명령을 실행한 뒤 확인할 수 있는 결과입니다.

2. 코드를 실행한다는 것은 무엇을 의미하는가?

Python 인터프리터가 코드에 적힌 명령을 정해진 순서로 해석하고 수행하여 결과를 만드는 과정입니다.

02 자료형과 연산 적용

값의 표기를 먼저 보고 자료형과 연산 결과를 예측한 뒤 해설을 확인합니다.

3. 20, 20.0, "20", False의 자료형은 각각 무엇인가?

차례로 int, float, str, bool입니다. 따옴표와 소수점, True 또는 False 표기가 자료형을 구분하는 단서가 됩니다.

4. 3 + 2와 "3" + "2"의 결과가 다른 이유는?

전자는 숫자끼리 더해 5가 되고, 후자는 글자끼리 이어 붙어 32가 됩니다. 같은 +라도 값의 자료형에 따라 처리가 달라집니다.

03 오류 메시지 해석

오류 이름을 확인한 뒤 연산에 사용한 두 값의 자료형을 차례로 살펴봅니다.

5. "20" + 1이 TypeError가 되는 이유는?

문자열과 정수 사이에는 + 연산이 정의되어 있지 않기 때문입니다. 두 값을 더하려면 먼저 같은 자료형으로 변환해야 합니다.

2교시 학습 내용

2교시에는 오늘 구분한 값에 나중에도 사용할 이름을 붙입니다. 이 이름을 변수라고 합니다. 변수를 이용해 같은 값을 여러 곳에서 사용하고 실행 중에 바꾸는 방법, 숫자 값이 이미지의 막대와 원으로 표현되는 과정을 살펴봅니다.

참고 자료