코드 실행 흐름과 자료형 구분
- 핵심 개념
- 데이터, 명령, 자료형
- 자료형
- int, float, str, bool
- 확인 방법
- print(), type()
- 다음 학습
- 변수와 대입
학습 목표
- 데이터, 명령, 코드, 프로그램, 출력의 구분과 설명
- 간단한 Python 코드의 순차적 실행 흐름 추적
- 값의 표기와 역할,
type()결과를 통한int,float,str,bool의 구분 3 + 2와"3" + "2"의 결과 예측 및 자료형에 따른 차이 설명- Colab에서
print()와type()실행 및 결과 확인
학습 내용
- 입력·규칙·출력
세 가지 요소가 코드에서 어떻게 나타나는지 처음 살펴봅니다.
- 데이터와 명령
데이터와 명령이 실행 결과로 이어지는 과정을 정리합니다.
- 코드 추적
print()와 따옴표의 쓰임을 살피며 실행 순서를 따라갑니다. - 기본 자료형
값의 종류와 역할을 구분하고, 불리언 상태와 자료형별 연산을 비교합니다.
- Colab 실습
Colab에서
print()와type()을 실행하고 결과를 확인합니다.
핵심 내용
이번 교시에는 코드가 실행되는 순서를 따라가며 값의 종류를 구분합니다. 이렇게 구분한 값에 이름을 붙여 다시 사용하는 변수와 대입은 2교시에서 이어서 다룹니다.
입력·규칙·출력
1주차 OT에서는 수업의 전체 흐름과 앞으로 다룰 내용을 살펴보았습니다. 이번 시간부터는 Python 코드를 직접 읽으며 컴퓨터에 무엇을 주고, 어떤 규칙으로 처리하고, 무엇이 결과로 나타나는지 확인합니다.
컴퓨터 화면에 “안녕하세요. 저는 정호이고 시각디자인을 전공합니다”라는 문장을 띄우려면, 컴퓨터에 알려줘야 할 것은 정보와 행동 두 가지입니다. 정보의 예는 이름과 전공이고, 행동의 예는 그 정보를 문장으로 화면에 표시하는 일입니다.
핵심 구분
이름과 전공은 컴퓨터가 처리할 데이터이고, 화면에 표시하기는 그 데이터로 무엇을 할지 지시하는 명령입니다. 프로그램은 데이터와 명령을 컴퓨터가 실행할 수 있도록 정확한 순서로 작성한 코드의 묶음입니다.
자기소개 예제의 구조
| 구분 | 의미 | 자기소개 예시 |
|---|---|---|
| 입력 | 프로그램이 처리할 데이터 | 이름과 전공 |
| 규칙 | 데이터를 처리하는 명령과 순서 | 이름과 전공을 문장으로 표시하기 |
| 출력 | 코드를 실행해 얻는 결과 | 화면에 나타난 자기소개 문장 |
여기서 입력은 Python의 input() 함수를 뜻하지 않습니다. 프로그램이 처리하도록 주어진 데이터를 가리킵니다. 키보드로 값을 입력받는 input() 함수는 이후 수업에서 다룹니다.
“나를 소개하고 싶다”라는 의도만으로는 컴퓨터가 그 문장을 알아서 만들지 못합니다. 데이터와 명령을 규칙에 맞게 작성하고 실행해야 결과가 나타납니다.
데이터·명령·실행 결과
프로그램 실행의 기본 용어
데이터는 컴퓨터가 처리하는 정보 전체를 가리키고, 값은 코드에서 실제로 처리하는 하나의 구체적인 데이터입니다. 이름이라는 데이터는 코드에서 "정호"라는 값으로 나타납니다.
데이터와 명령을 Python 문법으로 적으면 코드가 됩니다. 특정 목적에 맞게 코드를 구성한 전체가 프로그램이고, 이를 실행해 얻은 결과가 출력입니다.
| 용어 | 정확한 의미 | 자기소개 예시 |
|---|---|---|
| 데이터 | 컴퓨터가 읽고 처리하는 값 | "정호", "시각디자인" |
| 명령 | 컴퓨터가 수행할 작업 | 이름과 전공을 화면에 표시하라 |
| 코드 | 데이터와 명령을 프로그래밍 언어로 적은 것 | print("이름:", "정호") |
| 프로그램 | 하나의 목적에 맞게 구성한 코드 전체 | 이름과 전공을 출력하는 두 줄의 코드 |
| 출력 | 프로그램을 실행해 얻은 결과 | 이름: 정호, 전공: 시각디자인 |
내 이름과 전공을 화면에 표시한다.
print("이름:", "정호")print("전공:", "시각디자인")
Python이 작성된 순서에 따라 두 명령을 수행한다.
이름: 정호전공: 시각디자인
Python 인터프리터의 역할
Python은 사람이 비교적 읽기 쉬운 형태로 컴퓨터에 명령을 표현하는 프로그래밍 언어입니다. 사람은 메모에 생략된 내용을 문맥으로 짐작할 수 있지만, Python 실행 환경은 문맥을 짐작하지 않습니다. 작성된 기호를 Python 문법에 따라 해석합니다.
Python 실행 환경은 우리가 작성한 코드를 해석하고 처리합니다. 여기서 실행은 화면에 코드를 적어두는 것이 아니라, 작성된 명령을 실제로 수행하게 하는 일입니다.
코드 실행 순서
Python은 코드를 정해진 순서에 따라 위에서 아래로 실행합니다. 앞선 명령의 결과가 반영된 뒤 다음 명령을 실행합니다. 빈 줄은 코드를 읽기 쉽게 구분할 뿐, 별도의 명령으로 실행되지는 않습니다.
실행 단위
코드를 정확하게 작성했지만 실행하지 않았다면 출력이 생길까요? 생기지 않습니다. 작성된 코드와 실행된 코드는 구분해야 합니다.
코드 추적
아래 코드를 아직 외울 필요는 없습니다. 각 줄이 화면에 무엇을 보여주는지 순서대로 읽는 것이 먼저입니다. 값에 이름을 붙이는 방법은 2교시에서 다룹니다.
print("이름:", "정호")
print("전공:", "시각디자인")
print() 함수
print()는 Python이 미리 제공하는 함수입니다. 함수는 특정 작업을 수행하도록 준비된 기능이며, 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이 값을 어떤 종류로 읽을지 정하는 기준입니다. 자료형을 알면 값의 의미, 사용할 수 있는 연산, 연산 뒤에 나올 결과를 예상할 수 있습니다.
자료형 확인 절차
- 따옴표, 소수점,
True와False같은 표기 단서를 찾습니다. type()으로 Python이 실제로 판단한 자료형을 확인합니다.- 자료형을 근거로 연산 결과나 오류를 예측합니다.
자료형의 표기
값의 내용이 비슷해 보여도 코드에 적는 방식이 다르면 자료형이 달라집니다. 먼저 각 자료형의 표기 단서와 쓰임을 하나씩 확인합니다.
0-3120양수, 음수, 0처럼 소수 부분이 없는 수를 나타냅니다. 이번 수업의 예제에서는 소수점 없이 적습니다.
- 표기 단서
- 이번 수업의 예제에서는 숫자에 소수점이 없습니다.
- 주요 쓰임
- 개수, 순서, 픽셀 좌표
- 실행 예
3 + 2→5
0.753.5-1.2소수 부분이 있는 수를 나타냅니다. 이번 수업의 예제에서는 소수점을 포함해 적으며, 20.0도 float입니다.
- 표기 단서
- 이번 수업의 예제에서는 숫자에 소수점이 있습니다.
- 주요 쓰임
- 비율, 투명도, 시간
- 실행 예
3.0 + 2.5→5.5
"정호""blue""20"따옴표 안에 적은 글자의 묶음입니다. 숫자처럼 보여도 따옴표 안에 있으면 문자열입니다.
- 표기 단서
- 내용의 앞뒤에 따옴표가 있습니다.
- 주요 쓰임
- 이름, 제목, 색상명
- 실행 예
"3" + "2"→"32"
TrueFalse참과 거짓의 두 상태를 나타냅니다. Python에서는 첫 글자를 반드시 대문자로 적습니다.
- 표기 단서
True또는False입니다.- 주요 쓰임
- 켜짐과 꺼짐, 조건의 결과
- 실행 예
print(True)→True
불리언의 역할
정수와 실수는 수량을, 문자열은 글자 정보를 나타냅니다. 불리언은 이들과 달리 어떤 상태가 성립하는지를 나타냅니다. 즉, “얼마인가?”나 “무엇인가?”가 아니라 “그런가?”라는 질문에 True 또는 False로 답하는 자료형입니다.
True는 ‘정답’, False는 ‘오류’를 뜻하지 않습니다. 두 값은 프로그램이 확인하려는 상태에 대한 예와 아니요를 구분합니다. 프로그램은 이 구분을 바탕으로 화면에 요소를 표시하거나 숨기고, 기능을 실행하거나 멈추는 등 다음 행동을 결정할 수 있습니다.
True와 False로 구분합니다.
행동의 결정프로그램은 저장된 상태에 따라 표시·재생·다음 단계 같은 행동을 선택합니다.
| 상태 질문 | True | False | 프로그램에서의 활용 |
|---|---|---|---|
| 이미지를 표시할 것인가? | 표시 상태 | 숨김 상태 | 이미지의 표시 여부 결정 |
| 소리를 재생할 것인가? | 재생 상태 | 정지 상태 | 소리의 재생 여부 결정 |
| 작업이 완료되었는가? | 완료 상태 | 미완료 상태 | 완료 안내나 다음 단계의 표시 결정 |
이후 조건문을 배우면 프로그램이 불리언 값을 확인해 서로 다른 행동을 선택하는 코드를 작성합니다. 이번 시간에는 True와 False가 글자가 아니라 두 상태를 구분하는 값이라는 점까지 이해합니다.
유사 값의 자료형 비교
사람에게는 비슷하게 보이는 값도 Python은 표기에 따라 다르게 읽습니다. 따옴표와 소수점을 먼저 확인합니다.
20과 "20"은 화면에 모두 20처럼 보일 수 있습니다.
다른 자료형type()은 숫자로 저장된 int와 글자로 저장된 str을 구분합니다.
| 코드에 적은 값 | 자료형 | Python이 읽는 방식 |
|---|---|---|
20 | int | 소수점이 없는 숫자 20 |
20.0 | float | 소수점이 있는 숫자 20.0 |
"20" | str | 글자 2와 0의 묶음 |
True | bool | 참을 나타내는 상태 |
"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 + 5 | 15 | int | 정수끼리 더합니다. |
3 + 2.5 | 5.5 | float | 실수가 포함되어 결과에도 소수점이 생깁니다. |
10 / 2 | 5.0 | float | /로 나눈 결과는 실수입니다. |
"data" + " art" | "data art" | str | 문자열을 앞뒤로 연결합니다. |
"ha" * 3 | "hahaha" | str | 문자열을 세 번 반복합니다. |
자료형 불일치와 TypeError
자료형 불일치
"20" + 1에서 "20"은 str이고 1은 int입니다. 서로 호환되지 않는 자료형에는 해당 연산을 적용할 수 없으므로 TypeError가 발생합니다.
계산하려면 두 값의 자료형을 목적에 맞게 바꿔야 합니다. 자료형 변환은 이후 수업에서 다룹니다.
자료형 예측 절차
코드를 바로 실행하지 말고 양쪽 값의 자료형 → 연산의 의미 → 최종 결과를 차례로 적어봅니다.
결과와 자료형을 먼저 적어봅니다
8 + 2.0의 결과와 자료형은 무엇인가?"8" + "2"의 결과와 자료형은 무엇인가?"go" * 2의 결과와 자료형은 무엇인가?8 + "2"는 결과가 나오는가, 오류가 나는가?
정답 및 해설
10.0,float"82",str"gogo",strint와str을 바로 더할 수 없어TypeError가 납니다.
Colab 실행 실습
앞서 살펴본 코드를 이제 직접 실행합니다. 3교시 미션을 완성하는 시간이 아니라, 코드 셀 하나를 실행해 결과가 나오는지 확인하는 시간입니다.
Python과 Google Colab의 관계
Python은 코드를 작성하는 데 쓰는 프로그래밍 언어이고, Google Colab은 브라우저에서 Python 코드를 작성하고 실행하는 노트북 환경입니다. Colab 노트북에는 설명, 코드, 결과를 한 문서에 함께 남길 수 있습니다.
- 실행한 코드 셀을 전달받습니다.
- 괄호 안의 값과 계산식을 처리합니다.
- 결과 또는 오류를 노트북에 표시합니다.
Colab의 셀 출력
Colab은 코드 셀의 마지막에 값이나 계산식만 적어도 결과를 보여줄 수 있습니다. 그러나 여러 결과를 명확하게 확인하기 위해 이번 주에는 print()를 사용합니다.
print()·type() 실행
- Google 계정으로 Colab에 접속합니다. 처음 접속했다면 요청되는 권한을 확인하고 허용합니다.
- 왼쪽 위 제목을
week02-period1-자기이름으로 바꿉니다. - 코드 셀에 아래 여덟 줄을 그대로 적습니다.
- Shift+Enter 또는 셀 왼쪽 ▶ 버튼으로 실행합니다.
- 출력에서 네 자료형의 이름과
5,32를 찾습니다. "정호"를 자기 이름으로 바꾸고 다시 실행합니다.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교시에는 오늘 구분한 값에 나중에도 사용할 이름을 붙입니다. 이 이름을 변수라고 합니다. 변수를 이용해 같은 값을 여러 곳에서 사용하고 실행 중에 바꾸는 방법, 숫자 값이 이미지의 막대와 원으로 표현되는 과정을 살펴봅니다.
참고 자료
- Google Colab, Welcome to Colaboratory노트북의 기본 구성과 코드 실행 방식을 소개하는 공식 노트북
- Google Colab FAQColab의 저장, 공유, 실행 환경에 관한 공식 설명
- Python 공식 튜토리얼: An Informal Introduction to Python숫자 계산과 텍스트를 다루는 Python 공식 입문 예제
- Python 공식 문서: type()값의 자료형을 확인하는 내장 기능의 공식 설명