📘 1장. 프로그래밍의 기본 개념
1.1 프로그래밍이란?
🔰 초보자 비유
프로그래밍은 컴퓨터에게 “해야 할 일”을 아주 상세하게 지시하는 일이다.
예를 들어, 친구에게 “라면 끓여줘”라고 말하면, 친구는 알아서 물 끓이고 스프 넣고 면 넣지만, 컴퓨터는 ‘알아서’라는 게 없다.
컴퓨터는 “물을 몇 ml 넣어라”, “3분 동안 끓여라”처럼 모든 단계가 명확하게 적혀 있어야만 움직인다.
🔍 기술적 정의
프로그래밍(Programming)이란,
컴퓨터에게 특정 문제를 해결하도록 명령어를 작성하여 전달하는 과정이다.
1.2 프로그램(Program)이란?
🔰 비유
‘프로그램’은 요리 레시피와 같다.
레시피가 순서대로 “무엇을 어떻게 해라”라고 적혀 있듯, 프로그램도 컴퓨터가 따라야 할 명령들을 순서대로 적어둔 것이다.
🔍 정의
프로그램(program)은
문제를 해결하기 위한 명령어들의 집합.
📘 2장. Python 소개 및 실행
2.1 왜 파이썬을 배우는가?
자료(페이지 전체)에서 말한 핵심 이유를 초보자 관점으로 재정리하면 다음과 같다.
✔ 파이썬이 쉬운 이유
- 문법이 간결하다 → 영어 문장처럼 읽힌다.
- 초보자도 빠르게 프로그래밍 결과를 경험할 수 있다.
- 다양한 분야에서 사용된다 → 응용력이 뛰어나다.
✔ 파이썬이 강력한 이유
- AI, 머신러닝, 데이터 분석에서 표준 언어처럼 사용됨
- 라이브러리가 풍부함 (numpy, pandas, tensorflow 등)
2.2 파이썬 실행 방식
파이썬은 크게 두 가지 방식으로 실행된다.
① 인터프리터 방식
- 한 줄 쓰면 바로 실행됨
- 예) Python 셸에서
3 + 5입력 → 바로 결과 출력
② 스크립트 방식
.py파일을 작성해 저장한 뒤 실행- 예)
python sample.py
📘 3장. 표현식(Expression)과 값(Value)
3.1 표현식(Expression)
🔰 비유
표현식은 “계산해보면 값이 나오는 모든 문장”이다.
예)
3 + 5"hello"a * 2
🔍 정의
표현식(Expression)
값으로 평가될 수 있는 모든 코드 조각.
3.2 값(Value)
🔰 비유
‘값’은 표현식이 계산된 뒤 최종적으로 도출된 결과이다.
식당에서 요리를 주문하면 결과로 음식이 나오듯,
표현식을 계산하면 값이 나온다.
예)
3 + 5→ 8"hello"→ "hello"
3.3 평가(Evaluation)
평가란, 표현식을 계산하여 값을 만드는 과정이다.
📘 4장. 변수와 메모리
4.1 변수란?
🔰 비유
변수는 라벨(label)이다.
물건(값)에는 이름이 없는데, 그 물건에 이름표를 붙여서 다시 찾기 쉽게 만드는 것과 같다.
예)
degrees = 36.5
→ "36.5라는 값을 ‘degrees’라는 이름표로 부르겠다"
🔍 기술적 정의
변수(variable)
값을 다시 사용하기 위해 메모리 공간에 붙여놓은 이름.
4.2 변수 할당(assignment)
코드:
degrees = 36.5
line-by-line 해설
degrees: 변수 이름=: 값을 변수에 ‘할당한다’는 의미36.5: 메모리에 저장되는 값
4.3 변수와 메모리의 구조(자료 기준)
원본 자료의 그림에서는 변수가 “값을 가리킨다”고 표현함.
즉, 파이썬에서 변수는 값을 저장하는 것이 아니라 ‘값이 저장된 위치’를 가리킨다.
이것은 나중에 가변성/불변성 개념에서 중요해짐.
4.4 재할당(Reassignment)
예)
degrees = 10
degrees = 'hello'
동일한 이름이라도 이전 값과는 연결이 끊기고, 새로운 값을 가리키게 된다.
4.5 중요한 특징 — 파이썬은 “이름표” 방식
자료 페이지에서도 강조되었듯,
파이썬에서 변수는 값을 가리키는 이름(name)이다.
즉, C처럼 “상자가 있고 그 안에 값이 들어있다”가 아니다.
📘 5장. 데이터 타입 개요 (Data Types)
5.1 타입이란?
🔰 비유
“수학 문제에서 ‘정수만 입력 가능’과 같은 조건”
→ 프로그래밍에서도 값마다 타입이 있다.
🔍 정의
타입(Type)이란
변수나 값이 가질 수 있는 데이터의 종류.
5.2 파이썬의 주요 타입 분류
✔ 숫자형
intfloatcomplex
✔ 시퀀스형
strlisttuplerange
✔ 매핑형
dict
✔ 집합형
set
✔ 기타
boolNone
📘 6장. 숫자형(int, float)
6.1 정수형 int
예)
student_count = 30
temperature = -5
balance = 0
6.2 실수형 float
예)
pi = 3.14
weight = 65.5
tax_rate = 0.1
과학적 표기법:
1.23e93.5e-3
6.3 산술 연산자
| 기호 | 의미 |
|---|---|
| + | 더하기 |
| - | 빼기 |
| * | 곱하기 |
| / | 나누기 |
| // | 몫 |
| % | 나머지 |
| ** | 거듭제곱 |
예)
3 ** 2 # 9
📘 7장. 문자열(str)
7.1 문자열이란?
비유
문자들이 줄줄이 이어진 “구슬 목걸이”.
정의
문자열(str)
문자들의 순서가 있는 변경 불가능(immutable) 시퀀스.
7.2 문자열 생성하기
따옴표 사용
'Hello'
"Hello"
escape sequence
예)
\n: 줄바꿈\t: 탭
7.3 f-string
예)
name = '혜령'
age = 25
greeting = f"안녕하세요. 제 이름은 {name}이고 나이는 {age}입니다."
7.4 시퀀스로서의 문자열
문자열은 시퀀스이므로 다음이 가능하다.
- 인덱싱
- 슬라이싱
- 반복
- 길이 확인
7.5 인덱싱
예)
문자열: "hello"
| 문자 | h | e | l | l | o |
|---|---|---|---|---|---|
| index | 0 | 1 | 2 | 3 | 4 |
| index(-) | -5 | -4 | -3 | -2 | -1 |
"hello"[1] # 'e'
7.6 슬라이싱
"hello"[1:4] # 'ell'
7.7 문자열의 불변성(immutable)
중요!
s = "hello"
s[0] = 'H' # ❌ 오류
문자열은 변경할 수 없다.
📘 8장. 리스트(list)
8.1 리스트란?
비유
서랍 안에 여러 물건을 순서대로 넣어둔 것.
정의
리스트(list)
여러 값을 순서대로 저장하는 변경 가능(mutable) 시퀀스형.
8.2 리스트 예시
my_list = [1, 2, 3]
my_list2 = ['a', 'b', 'c']
my_list3 = [3, 'Python', ['hello', 'world']]
8.3 중첩 리스트
예)
nested = [1, 2, [3, 4, 5]]
8.4 리스트의 가변성
리스트는 내부 요소 변경이 가능하다.
my_list = [1, 2, 3]
my_list[0] = 100
📘 9장. 튜플(tuple)
9.1 튜플이란?
비유
붙이면 더 이상 변경할 수 없는 “완성된 도시락”.
정의
튜플(tuple)
여러 값을 순서대로 저장하는 변경 불가능(immutable) 시퀀스형.
9.2 생성
my_tuple = (1, 2, 3)
주의: 요소가 1개일 때는 (1,) 형태여야 함.
9.3 불변성 예시
my_tuple[0] = 4 # ❌ 오류
📘 10장. range
10.1 정의
range는
일정한 규칙을 가진 숫자 시퀀스를 생성하는 타입.
예)
range(0, 5) # 0,1,2,3,4
10.2 형식
range(start, stop, step)
10.3 규칙
stop은 포함되지 않는다.
예)
range(1, 5) # 1,2,3,4
📘 11장. 딕셔너리(dict)
11.1 정의
비유
“단어장”: 단어(key) → 뜻(value)
기술적 정의
dict
key-value 쌍으로 이루어진 매핑(mapping) 자료형.
11.2 생성 예시
my_dict = {'name': '혜령', 'age': 25}
11.3 값 접근
my_dict['name'] # '혜령'
11.4 key 규칙
- key는 immutable이어야 한다.
→ str, int, float, tuple 가능
→ list, dict는 불가
📘 12장. set (세트)
12.1 세트란?
비유
순서 없고, 중복 없는 “봉지 속 구슬”.
정의
set
중복 없이 저장하는 변경 가능(mutable) 자료형.
12.2 집합 연산
a | b # 합집합
a & b # 교집합
a - b # 차집합
📘 13장. 불변 vs 가변
| 타입 | 불변 | 가변 |
|---|---|---|
| str | ✔ | ✖ |
| tuple | ✔ | ✖ |
| range | ✔ | ✖ |
| list | ✖ | ✔ |
| dict | ✖ | ✔ |
| set | ✖ | ✔ |
📘 14장. 형변환
14.1 암시적 형변환
파이썬이 자동으로 타입을 변환하는 경우.
예)
3 + 3.5 # 6.5 (float)
14.2 명시적 형변환
개발자가 직접 함수를 써서 변환.
예)
int('10') # 10
float('3.14') # 3.14
str(123) # '123'
📘 15장. 연산자
15.1 산술 연산자
이미 앞에서 설명함.
15.2 비교 연산자
| 기호 | 의미 |
|---|---|
| == | 같다 |
| != | 다르다 |
| > | 크다 |
| < | 작다 |
| >= | 이상 |
| <= | 이하 |
| is | 객체 동일성 |
| is not | 동일하지 않음 |
is는 값 비교가 아니라 “같은 객체인가” 비교
→ None 비교할 때 필수.
15.3 논리 연산자
| 연산자 | 의미 |
|---|---|
| and | 둘 다 True |
| or | 하나만 True |
| not | 반전 |
15.4 단축 평가(short-circuit)
예)
False and something # something 평가되지 않음
🎯 마무리:
실습 1 — 타입과 구조 연습
아래 데이터를 파이썬에서 직접 만들고,
각 요소를 인덱스로 접근해보기.
data = {
'name': '혜령',
'scores': [95, 88, 74],
'info': ('Korea', 25),
'tags': {'python', 'learning'},
}
실습 2 — 문자열 포맷팅 실습
다음 값을 f-string으로 문장 만들기.
name = '혜령'
age = 25
lang = 'Python'
'Language& Framework > Python' 카테고리의 다른 글
| OOP (1) | 2025.12.12 |
|---|---|
| Data Structure (0) | 2025.12.12 |
| Functions. & Module Control of Flow (0) | 2025.12.12 |