Type something to search...

1회차: 파이썬 소개 & 변수와 자료형

1회차: 파이썬 소개 & 변수와 자료형


학습 목표

  • 파이썬(Python)이 무엇인지 이해한다.
  • 파이썬을 설치하고 코드를 실행할 수 있다.
  • 변수(Variable)의 개념을 이해하고 사용할 수 있다.
  • 기본 자료형(Data Type)을 구분할 수 있다.

1.1. 파이썬이란?

파이썬(Python)은 1991년 귀도 반 로섬(Guido van Rossum)이 만든 프로그래밍 언어이다.

프로그래밍 언어가 무엇인지 쉽게 설명하면?

컴퓨터는 사람의 말을 직접 알아듣지 못한다. 컴퓨터에게 일을 시키려면 컴퓨터가 이해하는 언어로 명령을 내려야 한다. 그 언어 중 하나가 바로 파이썬이다. 마치 한국 사람에게는 한국어로 말해야 알아듣는 것처럼, 컴퓨터에게는 프로그래밍 언어로 말해야 한다.

왜 파이썬인가?

세상에는 C, Java(자바), JavaScript(자바스크립트) 등 수십 종류의 프로그래밍 언어가 있다. 그 중 파이썬은 문법이 가장 간결하여 입문자에게 가장 많이 추천되는 언어이다. 파이썬은 웹 서비스 개발, 데이터 분석, 인공지능(AI), 자동화, 게임 개발 등 거의 모든 분야에서 사용된다.


1.2. 파이썬 설치하기

1.2.1. 파이썬 내려받기

1.2.2. 확장프로그램 설치

  1. vscode Extention에서 검색 alt

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

  1. 설치확인
    1
    python --version
    alt

1.2.3. 가상환경(Virtual Environment) 만들기

가상환경이란?

가상환경(Virtual Environment)은 프로젝트마다 독립된 파이썬 실행 공간을 만드는 기능이다.

예를 들어, A 프로젝트는 라이브러리 버전 1.0이 필요하고, B 프로젝트는 버전 2.0이 필요한 경우를 생각한다. 가상환경 없이 하나의 컴퓨터에 두 버전을 함께 설치하면 충돌이 발생한다. 가상환경을 사용하면 프로젝트마다 별도의 공간에 필요한 버전만 설치할 수 있어 충돌을 방지할 수 있다.

요약

가상환경은 선택이 아닌 습관이다. 처음부터 가상환경을 사용하는 것이 전문 개발자의 기본 작업 방식이다.


1.2.4. 첫 번째 파이썬 파일 만들기

  1. VS Code 상단 메뉴에서 파일 > 새 파일 을 클릭한다.
  2. 파일 이름을 hello.py 로 저장한다. (.py 는 파이썬 파일임을 나타내는 확장자이다.)
  3. 코드를 작성하고 저장한 뒤, VS Code 오른쪽 상단의 ▶ (실행 버튼) 을 클릭하거나 터미널에서 아래 명령어를 입력하여 실행한다.
Terminal window
1
python hello.py

1.3. print(프린트) 함수 — 화면에 출력하기

1.3.1. print가 하는 일

print() 는 괄호 안에 넣은 내용을 화면에 출력하는 함수(Function)이다. 함수란 특정 기능을 수행하는 미리 만들어진 명령 묶음이다.

1.3.2. 기본 사용법

1
print("안녕, 파이썬!")
설명
1print 뒤에 소괄호 () 를 쓰고, 출력할 내용을 안에 넣는다. 문자(글자)는 반드시 큰따옴표(") 또는 작은따옴표(')로 감싸야 한다.

실행 결과

1
안녕, 파이썬!

참고

따옴표로 감싸지 않으면 파이썬이 그것을 변수 이름으로 착각하여 오류가 발생한다. 글자를 출력할 때는 항상 따옴표로 감싼다.

1.3.3. 여러 줄 출력하기

print() 를 여러 번 사용하면 각각 새로운 줄에 출력된다.

1
print("안녕, 파이썬!")
2
print("나는 오늘 파이썬을 처음 배웠다.")
3
print("정말 신기하다!")
설명
1첫 번째 문장을 출력한다. 출력 후 자동으로 줄이 바뀐다.
2두 번째 문장을 출력한다.
3세 번째 문장을 출력한다.

실행 결과

1
안녕, 파이썬!
2
나는 오늘 파이썬을 처음 배웠다.
3
정말 신기하다!

1.3.4. 숫자 출력하기

숫자는 따옴표 없이 바로 쓴다. print() 안에서 계산식을 쓰면 계산 결과를 출력한다.

1
print(100)
2
print(3.14)
3
print(100 + 200)
4
print(10 * 5)
설명
1숫자 100 을 그대로 출력한다.
2소수점이 있는 숫자 3.14 를 출력한다.
3100 + 200 을 먼저 계산한 결과 300 을 출력한다.
410 * 5 를 계산한 결과 50 을 출력한다.

실행 결과

1
100
2
3.14
3
300
4
50

1.3.5. 여러 값을 한 줄에 출력하기

print() 괄호 안에 쉼표(,)로 구분하여 여러 값을 넣으면 값들이 공백으로 구분되어 한 줄에 출력된다.

1
print("이름:", "홍길동")
2
print("나이:", 20)
3
print("키:", 175.5, "cm")
설명
1문자열 "이름:""홍길동" 을 쉼표로 연결하여 한 줄에 출력한다. 사이에 공백이 자동으로 들어간다.
2문자열 "나이:" 와 숫자 20 을 함께 출력한다.
3문자열, 숫자, 문자열 세 가지를 한 줄에 출력한다.

실행 결과

1
이름: 홍길동
2
나이: 20
3
키: 175.5 cm

1.4. 변수(Variable) — 데이터를 저장하는 상자

1.4.1. 변수란 무엇인가?

변수(Variable)를 가장 쉽게 이해하는 방법은 이름표가 붙은 상자로 생각하는 것이다.

집에 상자가 있고 그 상자에 “장난감”이라는 이름표가 붙어 있다고 생각한다. 상자 안에 장난감을 넣어두면, 나중에 “장난감 상자”를 찾으면 꺼낼 수 있다. 프로그래밍에서 변수도 마찬가지로 데이터를 저장해두고 이름으로 꺼내 사용할 수 있다.

1.4.2. 변수를 왜 사용하는가?

변수가 없다면 아래처럼 같은 값을 계속 반복해서 써야 한다.

1
print("홍길동의 점수는", 85, "점입니다.")
2
print(85, "점은 합격입니다.")

위 코드에서 점수를 90으로 바꾸고 싶으면 85 를 두 곳 모두 수정해야 한다. 하지만 변수를 사용하면 한 곳만 바꿔도 된다.

1
score = 85
2
print("점수:", score, "점입니다.")
3
print(score, "점은 합격입니다.")

이제 score = 85score = 90 으로 단 한 곳만 수정하면 모든 출력이 자동으로 바뀐다.

1.4.3. 변수 만들기

변수를 만드는 방법은 간단하다. 변수이름 = 저장할 값 형식으로 작성한다.

여기서 = 는 수학의 “같다”가 아니라 “오른쪽 값을 왼쪽 변수에 저장하라”는 의미이다.

1
name = "홍길동"
2
age = 20
3
height = 175.5
4
is_student = True
설명
1name 이라는 상자에 "홍길동" 이라는 글자를 저장한다.
2age 라는 상자에 숫자 20 을 저장한다.
3height 라는 상자에 소수 175.5 를 저장한다.
4is_student 라는 상자에 True (참)를 저장한다.

1.4.4. 변수 사용하기

변수에 저장된 값을 사용할 때는 변수 이름만 쓰면 된다.

1
name = "홍길동"
2
age = 20
3
4
print(name)
5
print(age)
6
print("안녕하세요,", name, "님!")
7
print(name, "의 나이는", age, "세입니다.")
설명
1~2변수 nameage 에 값을 저장한다.
4print(name)print("홍길동") 과 같은 결과이다. 변수 이름을 쓰면 저장된 값으로 대체된다.
5print(age)print(20) 과 같은 결과이다.
6문자열과 변수를 쉼표로 연결하여 출력한다.
7두 변수를 함께 사용하여 문장을 만들어 출력한다.

실행 결과

1
홍길동
2
20
3
안녕하세요, 홍길동 님!
4
홍길동 의 나이는 20 세입니다.

1.4.5. 변수의 값을 바꾸기

변수는 말 그대로 “변하는 수”이다. 같은 변수에 새 값을 넣으면 이전 값은 사라지고 새 값으로 교체된다.

1
score = 50
2
print("처음 점수:", score)
3
4
score = 80
5
print("수정된 점수:", score)
6
7
score = score + 10
8
print("보너스 적용 점수:", score)
설명
1score50 을 저장한다.
250 을 출력한다.
4score80 을 새로 저장한다. 이전 값 50 은 사라진다.
580 을 출력한다.
7오른쪽 score + 10 을 먼저 계산한다. 현재 score80 이므로 80 + 10 = 90 이다. 이 결과를 다시 score 에 저장한다.
890 을 출력한다.

실행 결과

1
처음 점수: 50
2
수정된 점수: 80
3
보너스 적용 점수: 90

1.4.6. 변수 이름 짓는 규칙

규칙올바른 예잘못된 예
영문자, 숫자, 언더스코어(_)만 사용player_hpplayer-hp (하이픈 불가)
숫자로 시작 불가hp22hp
공백 사용 불가my_namemy name
대소문자 구분Scorescore 는 별개
파이썬 예약어 사용 불가my_ifif, 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 을 모두 포함한다.

1
lv = 1
2
score = -10
3
life = 0
4
5
print("레벨:", lv)
6
print("점수:", score)
7
print("목숨:", life)
설명
1양수 정수 1lv 에 저장한다.
2음수 정수 -10score 에 저장한다.
3정수 0life 에 저장한다.
5~7각 변수의 이름과 값을 함께 출력한다.

실행 결과

1
레벨: 1
2
점수: -10
3
목숨: 0

1.5.3. 실수 — float(플로트)

실수(float)는 소수점이 있는 숫자이다. 키, 몸무게, 평균 점수처럼 소수점이 필요한 값에 사용한다.

1
height = 175.5
2
weight = 68.3
3
avg = 87.6
4
5
print("키:", height, "cm")
6
print("몸무게:", weight, "kg")
7
print("평균:", avg, "점")
설명
1~3소수점이 있는 실수를 각 변수에 저장한다.
5~7변수 이름과 단위를 함께 출력한다.

참고

정수 1 과 실수 1.0 은 값은 같아 보이지만 파이썬에서는 다른 자료형이다. 1 은 int(인트)이고, 1.0 은 float(플로트)이다.

1.5.4. 문자열 — str(스트링)

문자열(str)은 따옴표로 감싼 글자들의 모음이다. 큰따옴표(")와 작은따옴표(') 모두 사용할 수 있다.

1
name = "홍길동"
2
job = '전사'
3
msg = "레벨이 올랐습니다!"
4
5
print(name)
6
print(job)
7
print(msg)
설명
1큰따옴표를 사용하여 "홍길동" 을 저장한다.
2작은따옴표를 사용하여 '전사' 를 저장한다. 두 방식의 결과는 같다.
3느낌표(!)가 포함된 문자열을 저장한다. 특수문자도 따옴표 안에 넣으면 모두 문자열이 된다.

주의

숫자처럼 보여도 따옴표로 감싸면 문자열이 된다. "123" 은 문자열이기 때문에 "123" + "456" 을 하면 "123456" 이 된다. 이는 숫자 123 + 456 = 579 와는 전혀 다른 결과이다.

1.5.5. 불리언 — bool(불)

불리언(bool)은 참(True)과 거짓(False) 두 가지 값만 가지는 자료형이다. 어떤 상태가 “맞다 / 아니다”를 표현할 때 사용한다.

TrueFalse 는 반드시 첫 글자를 대문자로 써야 한다. true, false 로 쓰면 오류가 발생한다.

1
is_alive = True
2
is_game_over = False
3
has_item = True
4
5
print("생존 여부:", is_alive)
6
print("게임 오버:", is_game_over)
7
print("아이템 보유:", has_item)
설명
1살아있는 상태를 True (참)으로 저장한다.
2게임 오버 상태를 False (거짓)으로 저장한다.
3아이템 보유 여부를 True (참)으로 저장한다.
5~7각 상태를 설명과 함께 출력한다.

실행 결과

1
생존 여부: True
2
게임 오버: False
3
아이템 보유: True

1.5.6. type() 함수로 자료형 확인하기

type() 함수는 변수나 값의 자료형이 무엇인지 알려준다. 변수의 자료형이 헷갈릴 때 사용하면 유용하다.

1
a = 10
2
b = 3.14
3
c = "안녕"
4
d = True
5
6
print(type(a))
7
print(type(b))
8
print(type(c))
9
print(type(d))
설명
1정수 10a 에 저장한다.
2실수 3.14b 에 저장한다.
3문자열 "안녕"c 에 저장한다.
4불리언 Trued 에 저장한다.
6type(a)a 의 자료형을 확인하여 출력한다.
7type(b)b 의 자료형을 확인하여 출력한다.
8type(c)c 의 자료형을 확인하여 출력한다.
9type(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. 변환 예시

1
num_str = "100"
2
num_int = int(num_str)
3
num_float = float(num_str)
4
5
print(num_str, type(num_str))
6
print(num_int, type(num_int))
7
print(num_float, type(num_float))
설명
1문자열 "100" 을 변수 num_str 에 저장한다. 따옴표로 감쌌으므로 문자열이다.
2int() 함수로 문자열 "100" 을 정수 100 으로 변환하여 저장한다.
3float() 함수로 문자열 "100" 을 실수 100.0 으로 변환하여 저장한다.
5원본 문자열과 그 자료형을 함께 출력한다.
6변환된 정수와 그 자료형을 함께 출력한다.
7변환된 실수와 그 자료형을 함께 출력한다.

실행 결과

1
100 <class 'str'>
2
100 <class 'int'>
3
100.0 <class 'float'>

1.7. input() 함수 — 사용자 입력받기

input() 함수는 사용자에게 키보드 입력을 받는다. 괄호 안에 안내 문구를 넣으면 화면에 먼저 출력된 후 입력 대기 상태가 된다.

주의

input() 으로 받은 값은 숫자처럼 보여도 항상 문자열(str)이다. 숫자로 계산하려면 반드시 int() 또는 float() 로 변환해야 한다.

1
name = input("이름을 입력하세요: ")
2
age = int(input("나이를 입력하세요: "))
3
4
print("이름:", name)
5
print("나이:", age)
6
print("내년 나이:", age + 1)
설명
1input() 으로 이름을 입력받아 name 에 저장한다. 이름은 문자열이므로 변환이 필요 없다.
2input() 으로 나이를 입력받은 뒤 int() 로 정수로 변환하여 age 에 저장한다. 변환하지 않으면 age + 1 에서 오류가 발생한다.
4~5입력받은 이름과 나이를 출력한다.
6age + 1 로 내년 나이를 계산하여 출력한다. age 가 정수이므로 덧셈이 가능하다.

1.8. 종합 예제: 내 캐릭터 카드 만들기

지금까지 배운 내용을 종합하여 캐릭터 카드 출력 프로그램을 만든다.

1
name = "홍길동"
2
job = "전사"
3
lv = 1
4
hp = 100
5
mp = 50
6
is_alive = True
7
8
print("==============================")
9
print(" 캐릭터 카드")
10
print("==============================")
11
print("이름 :", name)
12
print("직업 :", job)
13
print("레벨 :", lv)
14
print("HP :", hp)
15
print("MP :", mp)
16
print("생존 :", is_alive)
17
print("==============================")
설명
1캐릭터 이름을 문자열(str)로 저장한다.
2직업을 문자열(str)로 저장한다.
3레벨을 정수(int)로 저장한다.
4체력을 정수(int)로 저장한다.
5마나를 정수(int)로 저장한다.
6생존 여부를 불리언(bool)로 저장한다.
8~10구분선과 제목을 출력하여 카드의 테두리를 만든다.
11~16각 변수의 이름과 값을 함께 출력한다.
17구분선을 한 번 더 출력하여 카드를 마무리한다.

실행 결과

1
==============================
2
캐릭터 카드
3
==============================
4
이름 : 홍길동
5
직업 : 전사
6
레벨 : 1
7
HP : 100
8
MP : 50
9
생존 : True
10
==============================

1.9. 실습 과제

과제 1. 자기소개 프로그램

input() 으로 이름, 나이, 좋아하는 음식을 입력받아 아래 형식으로 출력하는 코드를 작성한다.

1
안녕하세요!
2
이름: 홍길동
3
나이: 20
4
좋아하는 음식: 피자
1
name = input("이름을 입력하세요: ")
2
age = int(input("나이를 입력하세요: "))
3
food = input("좋아하는 음식을 입력하세요: ")
4
5
print("안녕하세요!")
6
print("이름:", name)
7
print("나이:", age)
8
print("좋아하는 음식:", food)

과제 2. 게임 캐릭터 등록

아래 정보를 변수에 저장하고 출력하는 코드를 작성한다. 값은 직접 정해서 넣는다.

  • 캐릭터 이름 (문자열)
  • 직업 (문자열)
  • 레벨 (정수, 1~99 사이)
  • 체력 (실수, 예: 125.5)
  • 최강자 여부 (불리언)
1
c_name = "다크나이트"
2
c_job = "기사"
3
c_lv = 45
4
c_hp = 2350.5
5
c_best = False
6
7
print("캐릭터 이름:", c_name)
8
print("직업:", c_job)
9
print("레벨:", c_lv)
10
print("체력:", c_hp)
11
print("최강자 여부:", c_best)