1회차: 파이썬 소개 & 변수와 자료형
1회차: 파이썬 소개 & 변수와 자료형
학습 목표
- 파이썬(Python)이 무엇인지 이해한다.
- 파이썬을 설치하고 코드를 실행할 수 있다.
- 변수(Variable)의 개념을 이해하고 사용할 수 있다.
- 기본 자료형(Data Type)을 구분할 수 있다.
1.1. 파이썬이란?
파이썬(Python)은 1991년 귀도 반 로섬(Guido van Rossum)이 만든 프로그래밍 언어이다.
프로그래밍 언어가 무엇인지 쉽게 설명하면?
컴퓨터는 사람의 말을 직접 알아듣지 못한다. 컴퓨터에게 일을 시키려면 컴퓨터가 이해하는 언어로 명령을 내려야 한다. 그 언어 중 하나가 바로 파이썬이다. 마치 한국 사람에게는 한국어로 말해야 알아듣는 것처럼, 컴퓨터에게는 프로그래밍 언어로 말해야 한다.
왜 파이썬인가?
세상에는 C, Java(자바), JavaScript(자바스크립트) 등 수십 종류의 프로그래밍 언어가 있다. 그 중 파이썬은 문법이 가장 간결하여 입문자에게 가장 많이 추천되는 언어이다. 파이썬은 웹 서비스 개발, 데이터 분석, 인공지능(AI), 자동화, 게임 개발 등 거의 모든 분야에서 사용된다.
1.2. 파이썬 설치하기
1.2.1. 파이썬 내려받기
- 사이트 접속
- 설치 실행
- 설치 확인
- 웹 브라우저를 열고 주소창에 아래 주소를 입력한다. https://www.python.org
- 화면 상단의 Downloads 메뉴를 클릭한다.

- 노란색 버튼 “Download Python 3.x.x” 를 클릭하여 설치 파일을 내려받는다.
내려받은 파일을 더블클릭하여 설치를 시작한다.

⚠️ 주의: 설치 화면 맨 아래에 “Add Python to PATH” 라는 체크박스가 있다. 이것을 반드시 체크해야 한다. 체크하지 않으면 나중에 파이썬을 실행할 때 오류가 발생한다.
체크 후 “Install Now” 버튼을 클릭하면 설치가 시작된다.
키보드에서 윈도우 키(⊞) + R 을 동시에 누른 뒤, cmd 를 입력하고 엔터를 누르면 검은 화면(터미널)이 열린다. 아래 명령어를 입력하고 엔터를 누른다.
1python --version아래와 같이 버전 번호가 출력되면 설치 성공이다.
1Python 3.12.01.2.2. 확장프로그램 설치
-
vscode Extention에서 검색

-
현재 경로에서 터미널 실행하는 단축키 지정

- 설치확인
1python --version

1.2.3. 가상환경(Virtual Environment) 만들기
가상환경이란?
가상환경(Virtual Environment)은 프로젝트마다 독립된 파이썬 실행 공간을 만드는 기능이다.
예를 들어, A 프로젝트는 라이브러리 버전 1.0이 필요하고, B 프로젝트는 버전 2.0이 필요한 경우를 생각한다. 가상환경 없이 하나의 컴퓨터에 두 버전을 함께 설치하면 충돌이 발생한다. 가상환경을 사용하면 프로젝트마다 별도의 공간에 필요한 버전만 설치할 수 있어 충돌을 방지할 수 있다.
요약
가상환경은 선택이 아닌 습관이다. 처음부터 가상환경을 사용하는 것이 전문 개발자의 기본 작업 방식이다.
- ① 프로젝트 폴더 생성
- ② 가상환경 생성
- ③ 가상환경 활성화
- ④ 가상환경 비활성화
- 원하는 위치에 프로젝트 폴더를 만든다. (예:
C:\python-study) - VS Code 상단 메뉴에서 파일 > 폴더 열기 를 클릭하고 만든 폴더를 선택한다.
- VS Code 상단 메뉴에서 터미널 > 새 터미널 을 클릭하면 화면 아래에 터미널이 열린다.
터미널에 아래 명령어를 입력한다. .venv 는 가상환경 폴더의 이름이다.
1python -m venv .venv
| 부분 | 설명 |
|---|---|
python -m venv | 파이썬에 내장된 가상환경 생성 도구를 실행한다. |
.venv | 만들어질 가상환경 폴더의 이름이다. . 으로 시작하면 숨김 폴더가 된다. |
명령어를 실행하면 프로젝트 폴더 안에 .venv 폴더가 생성된다.
가상환경을 만들었다고 해서 자동으로 사용되는 것이 아니다. 사용하려면 반드시 활성화(Activate) 해야 한다.
1.venv\Scripts\activate활성화에 성공하면 터미널 프롬프트 앞에 (.venv) 가 표시된다.
1(.venv) C:\python-study>
⚠️ 주의: VS Code를 새로 열거나 터미널을 새로 열 때마다 가상환경을 다시 활성화해야 한다.
(.venv)표시가 없으면 가상환경이 비활성화 상태이다.
작업이 끝난 후 가상환경을 종료하려면 아래 명령어를 입력한다.
1deactivate(.venv) 표시가 사라지면 정상적으로 비활성화된 것이다.
1.2.4. 첫 번째 파이썬 파일 만들기
- VS Code 상단 메뉴에서 파일 > 새 파일 을 클릭한다.
- 파일 이름을
hello.py로 저장한다. (.py는 파이썬 파일임을 나타내는 확장자이다.) - 코드를 작성하고 저장한 뒤, VS Code 오른쪽 상단의 ▶ (실행 버튼) 을 클릭하거나 터미널에서 아래 명령어를 입력하여 실행한다.
1python hello.py1.3. print(프린트) 함수 — 화면에 출력하기
1.3.1. print가 하는 일
print() 는 괄호 안에 넣은 내용을 화면에 출력하는 함수(Function)이다. 함수란 특정 기능을 수행하는 미리 만들어진 명령 묶음이다.
1.3.2. 기본 사용법
1print("안녕, 파이썬!")| 줄 | 설명 |
|---|---|
| 1 | print 뒤에 소괄호 () 를 쓰고, 출력할 내용을 안에 넣는다. 문자(글자)는 반드시 큰따옴표(") 또는 작은따옴표(')로 감싸야 한다. |
실행 결과
1안녕, 파이썬!참고
따옴표로 감싸지 않으면 파이썬이 그것을 변수 이름으로 착각하여 오류가 발생한다. 글자를 출력할 때는 항상 따옴표로 감싼다.
1.3.3. 여러 줄 출력하기
print() 를 여러 번 사용하면 각각 새로운 줄에 출력된다.
1print("안녕, 파이썬!")2print("나는 오늘 파이썬을 처음 배웠다.")3print("정말 신기하다!")| 줄 | 설명 |
|---|---|
| 1 | 첫 번째 문장을 출력한다. 출력 후 자동으로 줄이 바뀐다. |
| 2 | 두 번째 문장을 출력한다. |
| 3 | 세 번째 문장을 출력한다. |
실행 결과
1안녕, 파이썬!2나는 오늘 파이썬을 처음 배웠다.3정말 신기하다!1.3.4. 숫자 출력하기
숫자는 따옴표 없이 바로 쓴다. print() 안에서 계산식을 쓰면 계산 결과를 출력한다.
1print(100)2print(3.14)3print(100 + 200)4print(10 * 5)| 줄 | 설명 |
|---|---|
| 1 | 숫자 100 을 그대로 출력한다. |
| 2 | 소수점이 있는 숫자 3.14 를 출력한다. |
| 3 | 100 + 200 을 먼저 계산한 결과 300 을 출력한다. |
| 4 | 10 * 5 를 계산한 결과 50 을 출력한다. |
실행 결과
110023.1433004501.3.5. 여러 값을 한 줄에 출력하기
print() 괄호 안에 쉼표(,)로 구분하여 여러 값을 넣으면 값들이 공백으로 구분되어 한 줄에 출력된다.
1print("이름:", "홍길동")2print("나이:", 20)3print("키:", 175.5, "cm")| 줄 | 설명 |
|---|---|
| 1 | 문자열 "이름:" 과 "홍길동" 을 쉼표로 연결하여 한 줄에 출력한다. 사이에 공백이 자동으로 들어간다. |
| 2 | 문자열 "나이:" 와 숫자 20 을 함께 출력한다. |
| 3 | 문자열, 숫자, 문자열 세 가지를 한 줄에 출력한다. |
실행 결과
1이름: 홍길동2나이: 203키: 175.5 cm1.4. 변수(Variable) — 데이터를 저장하는 상자
1.4.1. 변수란 무엇인가?
변수(Variable)를 가장 쉽게 이해하는 방법은 이름표가 붙은 상자로 생각하는 것이다.
집에 상자가 있고 그 상자에 “장난감”이라는 이름표가 붙어 있다고 생각한다. 상자 안에 장난감을 넣어두면, 나중에 “장난감 상자”를 찾으면 꺼낼 수 있다. 프로그래밍에서 변수도 마찬가지로 데이터를 저장해두고 이름으로 꺼내 사용할 수 있다.
1.4.2. 변수를 왜 사용하는가?
변수가 없다면 아래처럼 같은 값을 계속 반복해서 써야 한다.
1print("홍길동의 점수는", 85, "점입니다.")2print(85, "점은 합격입니다.")위 코드에서 점수를 90으로 바꾸고 싶으면 85 를 두 곳 모두 수정해야 한다. 하지만 변수를 사용하면 한 곳만 바꿔도 된다.
1score = 852print("점수:", score, "점입니다.")3print(score, "점은 합격입니다.")이제 score = 85 를 score = 90 으로 단 한 곳만 수정하면 모든 출력이 자동으로 바뀐다.
1.4.3. 변수 만들기
변수를 만드는 방법은 간단하다. 변수이름 = 저장할 값 형식으로 작성한다.
여기서 = 는 수학의 “같다”가 아니라 “오른쪽 값을 왼쪽 변수에 저장하라”는 의미이다.
1name = "홍길동"2age = 203height = 175.54is_student = True| 줄 | 설명 |
|---|---|
| 1 | name 이라는 상자에 "홍길동" 이라는 글자를 저장한다. |
| 2 | age 라는 상자에 숫자 20 을 저장한다. |
| 3 | height 라는 상자에 소수 175.5 를 저장한다. |
| 4 | is_student 라는 상자에 True (참)를 저장한다. |
1.4.4. 변수 사용하기
변수에 저장된 값을 사용할 때는 변수 이름만 쓰면 된다.
1name = "홍길동"2age = 203
4print(name)5print(age)6print("안녕하세요,", name, "님!")7print(name, "의 나이는", age, "세입니다.")| 줄 | 설명 |
|---|---|
| 1~2 | 변수 name 과 age 에 값을 저장한다. |
| 4 | print(name) 은 print("홍길동") 과 같은 결과이다. 변수 이름을 쓰면 저장된 값으로 대체된다. |
| 5 | print(age) 는 print(20) 과 같은 결과이다. |
| 6 | 문자열과 변수를 쉼표로 연결하여 출력한다. |
| 7 | 두 변수를 함께 사용하여 문장을 만들어 출력한다. |
실행 결과
1홍길동2203안녕하세요, 홍길동 님!4홍길동 의 나이는 20 세입니다.1.4.5. 변수의 값을 바꾸기
변수는 말 그대로 “변하는 수”이다. 같은 변수에 새 값을 넣으면 이전 값은 사라지고 새 값으로 교체된다.
1score = 502print("처음 점수:", score)3
4score = 805print("수정된 점수:", score)6
7score = score + 108print("보너스 적용 점수:", score)| 줄 | 설명 |
|---|---|
| 1 | score 에 50 을 저장한다. |
| 2 | 50 을 출력한다. |
| 4 | score 에 80 을 새로 저장한다. 이전 값 50 은 사라진다. |
| 5 | 80 을 출력한다. |
| 7 | 오른쪽 score + 10 을 먼저 계산한다. 현재 score 는 80 이므로 80 + 10 = 90 이다. 이 결과를 다시 score 에 저장한다. |
| 8 | 90 을 출력한다. |
실행 결과
1처음 점수: 502수정된 점수: 803보너스 적용 점수: 901.4.6. 변수 이름 짓는 규칙
| 규칙 | 올바른 예 | 잘못된 예 |
|---|---|---|
영문자, 숫자, 언더스코어(_)만 사용 | player_hp | player-hp (하이픈 불가) |
| 숫자로 시작 불가 | hp2 | 2hp |
| 공백 사용 불가 | my_name | my name |
| 대소문자 구분 | Score 와 score 는 별개 | |
| 파이썬 예약어 사용 불가 | my_if | if, for, while 등 |
요약
변수 이름은 저장하는 내용을 알 수 있게 짓는 것이 좋다. a, b 처럼 의미 없는 이름보다 name, score, hp 처럼 역할이 보이는 이름을 사용한다.
1.5. 자료형(Data Type) — 데이터의 종류
1.5.1. 자료형이란?
자료형(Data Type)은 변수에 저장되는 데이터의 종류이다. 마치 상자의 용도가 다르듯이, 숫자 상자, 글자 상자, 참거짓 상자가 각각 다르다.
파이썬의 기본 자료형은 4가지이다.
| 자료형 | 영문 | 예시 | 설명 |
|---|---|---|---|
| 정수 | int(인트) | 10, -3, 0 | 소수점이 없는 숫자 |
| 실수 | float(플로트) | 3.14, -0.5, 1.0 | 소수점이 있는 숫자 |
| 문자열 | str(스트링) | "안녕", 'hello' | 따옴표로 감싼 글자들 |
| 불리언 | bool(불) | True, False | 참 또는 거짓 |
1.5.2. 정수 — int(인트)
정수(int)는 소수점이 없는 숫자이다. 양수, 음수, 0 을 모두 포함한다.
1lv = 12score = -103life = 04
5print("레벨:", lv)6print("점수:", score)7print("목숨:", life)| 줄 | 설명 |
|---|---|
| 1 | 양수 정수 1 을 lv 에 저장한다. |
| 2 | 음수 정수 -10 을 score 에 저장한다. |
| 3 | 정수 0 을 life 에 저장한다. |
| 5~7 | 각 변수의 이름과 값을 함께 출력한다. |
실행 결과
1레벨: 12점수: -103목숨: 01.5.3. 실수 — float(플로트)
실수(float)는 소수점이 있는 숫자이다. 키, 몸무게, 평균 점수처럼 소수점이 필요한 값에 사용한다.
1height = 175.52weight = 68.33avg = 87.64
5print("키:", height, "cm")6print("몸무게:", weight, "kg")7print("평균:", avg, "점")| 줄 | 설명 |
|---|---|
| 1~3 | 소수점이 있는 실수를 각 변수에 저장한다. |
| 5~7 | 변수 이름과 단위를 함께 출력한다. |
참고
정수 1 과 실수 1.0 은 값은 같아 보이지만 파이썬에서는 다른 자료형이다. 1 은 int(인트)이고, 1.0 은 float(플로트)이다.
1.5.4. 문자열 — str(스트링)
문자열(str)은 따옴표로 감싼 글자들의 모음이다. 큰따옴표(")와 작은따옴표(') 모두 사용할 수 있다.
1name = "홍길동"2job = '전사'3msg = "레벨이 올랐습니다!"4
5print(name)6print(job)7print(msg)| 줄 | 설명 |
|---|---|
| 1 | 큰따옴표를 사용하여 "홍길동" 을 저장한다. |
| 2 | 작은따옴표를 사용하여 '전사' 를 저장한다. 두 방식의 결과는 같다. |
| 3 | 느낌표(!)가 포함된 문자열을 저장한다. 특수문자도 따옴표 안에 넣으면 모두 문자열이 된다. |
주의
숫자처럼 보여도 따옴표로 감싸면 문자열이 된다. "123" 은 문자열이기 때문에 "123" + "456" 을 하면 "123456" 이 된다. 이는 숫자 123 + 456 = 579 와는 전혀 다른 결과이다.
1.5.5. 불리언 — bool(불)
불리언(bool)은 참(True)과 거짓(False) 두 가지 값만 가지는 자료형이다. 어떤 상태가 “맞다 / 아니다”를 표현할 때 사용한다.
True 와 False 는 반드시 첫 글자를 대문자로 써야 한다. true, false 로 쓰면 오류가 발생한다.
1is_alive = True2is_game_over = False3has_item = True4
5print("생존 여부:", is_alive)6print("게임 오버:", is_game_over)7print("아이템 보유:", has_item)| 줄 | 설명 |
|---|---|
| 1 | 살아있는 상태를 True (참)으로 저장한다. |
| 2 | 게임 오버 상태를 False (거짓)으로 저장한다. |
| 3 | 아이템 보유 여부를 True (참)으로 저장한다. |
| 5~7 | 각 상태를 설명과 함께 출력한다. |
실행 결과
1생존 여부: True2게임 오버: False3아이템 보유: True1.5.6. type() 함수로 자료형 확인하기
type() 함수는 변수나 값의 자료형이 무엇인지 알려준다. 변수의 자료형이 헷갈릴 때 사용하면 유용하다.
1a = 102b = 3.143c = "안녕"4d = True5
6print(type(a))7print(type(b))8print(type(c))9print(type(d))| 줄 | 설명 |
|---|---|
| 1 | 정수 10 을 a 에 저장한다. |
| 2 | 실수 3.14 를 b 에 저장한다. |
| 3 | 문자열 "안녕" 을 c 에 저장한다. |
| 4 | 불리언 True 를 d 에 저장한다. |
| 6 | type(a) 로 a 의 자료형을 확인하여 출력한다. |
| 7 | type(b) 로 b 의 자료형을 확인하여 출력한다. |
| 8 | type(c) 로 c 의 자료형을 확인하여 출력한다. |
| 9 | type(d) 로 d 의 자료형을 확인하여 출력한다. |
실행 결과
1<class 'int'>2<class 'float'>3<class 'str'>4<class 'bool'><class 'int'> 에서 class 는 “종류”라는 의미이고, 'int' 가 자료형 이름이다.
1.6. 자료형 변환 — 종류 바꾸기
1.6.1. 변환 함수 종류
때로는 자료형을 다른 종류로 바꿔야 할 때가 있다. 예를 들어 input() 함수로 입력받은 값은 항상 문자열이기 때문에 숫자로 계산하려면 반드시 변환해야 한다.
| 함수 | 변환 결과 | 예시 |
|---|---|---|
int() | 정수로 변환 | int("10") → 10 |
float() | 실수로 변환 | float("3.14") → 3.14 |
str() | 문자열로 변환 | str(100) → "100" |
1.6.2. 변환 예시
1num_str = "100"2num_int = int(num_str)3num_float = float(num_str)4
5print(num_str, type(num_str))6print(num_int, type(num_int))7print(num_float, type(num_float))| 줄 | 설명 |
|---|---|
| 1 | 문자열 "100" 을 변수 num_str 에 저장한다. 따옴표로 감쌌으므로 문자열이다. |
| 2 | int() 함수로 문자열 "100" 을 정수 100 으로 변환하여 저장한다. |
| 3 | float() 함수로 문자열 "100" 을 실수 100.0 으로 변환하여 저장한다. |
| 5 | 원본 문자열과 그 자료형을 함께 출력한다. |
| 6 | 변환된 정수와 그 자료형을 함께 출력한다. |
| 7 | 변환된 실수와 그 자료형을 함께 출력한다. |
실행 결과
1100 <class 'str'>2100 <class 'int'>3100.0 <class 'float'>1.7. input() 함수 — 사용자 입력받기
input() 함수는 사용자에게 키보드 입력을 받는다. 괄호 안에 안내 문구를 넣으면 화면에 먼저 출력된 후 입력 대기 상태가 된다.
주의
input() 으로 받은 값은 숫자처럼 보여도 항상 문자열(str)이다. 숫자로 계산하려면 반드시 int() 또는 float() 로 변환해야 한다.
1name = input("이름을 입력하세요: ")2age = int(input("나이를 입력하세요: "))3
4print("이름:", name)5print("나이:", age)6print("내년 나이:", age + 1)| 줄 | 설명 |
|---|---|
| 1 | input() 으로 이름을 입력받아 name 에 저장한다. 이름은 문자열이므로 변환이 필요 없다. |
| 2 | input() 으로 나이를 입력받은 뒤 int() 로 정수로 변환하여 age 에 저장한다. 변환하지 않으면 age + 1 에서 오류가 발생한다. |
| 4~5 | 입력받은 이름과 나이를 출력한다. |
| 6 | age + 1 로 내년 나이를 계산하여 출력한다. age 가 정수이므로 덧셈이 가능하다. |
1.8. 종합 예제: 내 캐릭터 카드 만들기
지금까지 배운 내용을 종합하여 캐릭터 카드 출력 프로그램을 만든다.
1name = "홍길동"2job = "전사"3lv = 14hp = 1005mp = 506is_alive = True7
8print("==============================")9print(" 캐릭터 카드")10print("==============================")11print("이름 :", name)12print("직업 :", job)13print("레벨 :", lv)14print("HP :", hp)15print("MP :", mp)16print("생존 :", is_alive)17print("==============================")| 줄 | 설명 |
|---|---|
| 1 | 캐릭터 이름을 문자열(str)로 저장한다. |
| 2 | 직업을 문자열(str)로 저장한다. |
| 3 | 레벨을 정수(int)로 저장한다. |
| 4 | 체력을 정수(int)로 저장한다. |
| 5 | 마나를 정수(int)로 저장한다. |
| 6 | 생존 여부를 불리언(bool)로 저장한다. |
| 8~10 | 구분선과 제목을 출력하여 카드의 테두리를 만든다. |
| 11~16 | 각 변수의 이름과 값을 함께 출력한다. |
| 17 | 구분선을 한 번 더 출력하여 카드를 마무리한다. |
실행 결과
1==============================2 캐릭터 카드3==============================4이름 : 홍길동5직업 : 전사6레벨 : 17HP : 1008MP : 509생존 : True10==============================1.9. 실습 과제
과제 1. 자기소개 프로그램
input() 으로 이름, 나이, 좋아하는 음식을 입력받아 아래 형식으로 출력하는 코드를 작성한다.
1안녕하세요!2이름: 홍길동3나이: 204좋아하는 음식: 피자1name = input("이름을 입력하세요: ")2age = int(input("나이를 입력하세요: "))3food = input("좋아하는 음식을 입력하세요: ")4
5print("안녕하세요!")6print("이름:", name)7print("나이:", age)8print("좋아하는 음식:", food)과제 2. 게임 캐릭터 등록
아래 정보를 변수에 저장하고 출력하는 코드를 작성한다. 값은 직접 정해서 넣는다.
- 캐릭터 이름 (문자열)
- 직업 (문자열)
- 레벨 (정수, 1~99 사이)
- 체력 (실수, 예: 125.5)
- 최강자 여부 (불리언)
1c_name = "다크나이트"2c_job = "기사"3c_lv = 454c_hp = 2350.55c_best = False6
7print("캐릭터 이름:", c_name)8print("직업:", c_job)9print("레벨:", c_lv)10print("체력:", c_hp)11print("최강자 여부:", c_best)