01_파이썬소개 및 설치
1991년 개발자 귀도 반 로섬이 만듦.
처음 소규모 프로젝트에 사용 위해서 만듦.
몬티파이튼의 성배 라는 프로그램에 영향받아 Python 명명
파이썬의 특징
- 무한 정수를 처리 할 수 있다.
- 문법 구조가 쉽다.
- 다양하고 뛰어난 모듈이 많다.
02_처음 만들어 보는 프로그램
파이썬 IDLE를 실행,
파이썬의 shell 은 간단한 코드를 작성 할 때 사용된다.
IDLE (Integrated Development and Environment) =>통합 개발 환경
통합 개발 환경 툴이란 프로그램 개발에 필요한 코드 작성, 디버깅, 실행 등을 위한 툴을 말하는 것으로 쉽게 생각해서 코딩 툴 이라 생각하면 된다.
03_프로그램 실행 과정
소스파일 (xxx.py) ---컴파일---> 기계어 (binary code) ->기계(PC)에서 실행
> 컴파일러 : 우리가 작성한 코드를 컴퓨터가 이해할 수 있는 기계어로 바꿈
필요할 때 마다 바로바로 소스파일을 오는대로, 실시간으로 기계어로 바꾼다
> 인터프리터 : 컴파일러와 달리 실행파일을 만들지 않고, 실행이 필요 할 때 기계어로 변환
> 컴파일러와 인터프리터 차이
- 컴파일 언어는 소스 전체를 실행 파일로 만들고 기계에서 실행 (번역과 같다 ex. C/C++, java)
- 인터프리터 언어는 필요한 소스소드만 그때 그때 실행함, (동시 통역과 같음. ex. Python)
04_PyCharm 설치
05_데이터와 메모리 그리고 데이터 출력

데이터가 저장되어있는 메모리 공간을 변수라 한다.
변수를 이용해 데이터에 접근해 데이터를 수정하거나, 삭제 등을 할 수 있다.
06_변수
변수란? 데이터가 저장되어 있는 메모리 공간
메모리의 주소를 직접 사용하지 않고, 변수에 이름을 붙여 변수명이라 한다
number = 10
(변수선언)<--변수 초기화--(변수 초깃값)
🔹 = (대입 연산자)
✔ 변수에 값을 저장할 때 사용
✔ 오른쪽 값을 왼쪽 변수에 할당(저장)함
x = 10
y = "hello"
🔹 == (비교 연산자)
✔ 두 값이 같은지 비교할 때 사용
✔ 결과는 True(참) 또는 False(거짓) 반환
x = 10
y = 20
print(x == y)
print(x == 10)
07_변수를 사용하는 이유
변수를 사용하는 이유는 데이터를 효율적으로 저장하고 재사용하기 위해서다.
만약 변수를 사용하지 않으면, 같은 값을 계속 반복해서 입력해야 하고, 코드가 길고 관리하기 어렵다.
print(10 + 5)
print(10 * 2)
print(10 - 3)
x = 10
print(x + 5)
print(x * 2)
print(x - 3)
🔹 1. 값을 저장하고 관리하기 위해
🔹 2. 코드 재사용성과 가독성 증가
🔹 3. 유지보수와 확장성 증가
🔹 4. 메모리 효율적인 사용
🔹 5. 동적인 값 처리 가능
08_변수명은 이렇게 하세요
1️⃣ 변수명 작성 규칙 (Syntax Rules)
print(x + 5)
print(x * 2)
print(x - 3)
1st_variable = 100
my variable = 10
def = 5
class = 10
2️⃣ 변수명 권장 스타일 (Naming Conventions)
user_name = "Alice"
total_price = 1500
class Person:
pass
PI = 3.141592
MAX_VALUE = 100
class Test:
def __init__(self):
self.__private = 10
_internal_value = 42
class_ = "Python"
>>> 10 + 5
15
>>> _
15
3️⃣ 변수명 작성 시 권장되지 않는 스타일
a = 10
b = 20
l = 1
O = 0
this_is_a_very_long_variable_name = "Too long"
09_자료형
파이썬에서 사용되는 자료형 중 기본자료형
------------------------------------------------------------
1️⃣ 기본 자료형 (Primitive Types)
🔹 정수형 (int)
정수를 나타내는 자료형
크기의 제한이 없음 (C나 Java처럼 오버플로우가 발생하지 않음)
a = 10
b = -5
c = 0
print(type(a))
🔹 실수형 (float)
소수점을 포함하는 숫자
실수는 대략 소수점 이하 17~18번째에서 데이터 손실이 일어남
지수 표현(Exponential notation) 가능 (1.2e3 → 1.2 × 10³)
x = 3.14
y = -2.71
z = 1.2e3
print(type(x))
🔹 문자열 (str)
문자들의 집합 (유니코드 지원)
작은따옴표(') 또는 큰따옴표(")로 감싸서 표현
s1 = "Hello"
s2 = 'Python'
print(type(s1))
여러 줄 문자열 (Triple Quotes)
text = """이것은
여러 줄로 된
문자열이다."""
🔹 불리언 (bool)
True(참) 또는 False(거짓) 값을 가짐
0, "", [], {}, None은 False로 평가됨
is_active = True
is_logged_in = False
print(type(is_active))
숫자와의 관계
print(bool(1))
print(bool(0))
🔹 NoneType (None)
값이 없음을 나타냄 (null과 유사)
result = None
print(type(result))
10_자료형 변환(문자)
자료형을 변환하는 방법.
------------------------------------------------------------
1️⃣ 자료형 변환 (Type Casting)
x = 10
y = "20"
print(int(y))
print(str(x))
print(float(x))
🔹 타입 확인 및 변환
• 자료형 확인
print(type(100))
print(type("hello"))
print(type([1, 2, 3]))
• 자료형 변환
print(str(10))
print(list("abc"))
print(set([1, 2, 2, 3]))
🔹 파이썬의 동적 타이핑 (Dynamic Typing)
파이썬은 변수의 자료형을 명시적으로 선언할 필요가 없음 (동적 타이핑).
변수에 할당된 값에 따라 자동으로 자료형이 결정됨.
x = 10
x = "hello"
x = [1, 2, 3]
하지만 타입을 일관되게 유지하는 것이 코드 유지보수에 좋음.
필요하면 type hints 사용 가능 (파이썬 3.5+)
def add(a: int, b: int) -> int:
return a + b
11_자료형 변환(숫자)
12_자료형 변환(그외 데이터)
빈문자 vs 공백문자
--------------------------------------------------------
1️⃣ 빈 문자열("")의 bool 값
• 아무 문자도 포함하지 않은 문자열 ("")
• bool("")의 결과는 False
2️⃣ 공백 문자열(" ")의 bool 값
• 공백 문자(Space, " "), 탭("\t"), 개행문자("\n") 등은 문자로 인식
• bool(" ")의 결과는 True
13_데이터 입력
파이썬에서 사용자의 입력을 받을 때는 input() 함수를 사용하며,
입력받은 데이터의 자료형을 변환하려면 형 변환 함수
(int(), float(), str() 등)를 사용한다.
--------------------------------------------------------
1️⃣ 데이터 입력받기 (input() 함수)
input() 함수는 사용자가 입력한 값을 문자열(str) 형태로 반환한다.
data = input("입력하세요: ")
print("입력된 값:", data)
print("데이터 타입:", type(data))
2️⃣ 입력받은 데이터 형 변환 (Type Casting)
🔹 int() : 문자열 → 정수형 변환
--------------------------------------------
입력받은 값을 정수(int)로 변환하려면 int()를 사용한다.
num = int(input("정수를 입력하세요: "))
print("입력된 값:", num)
print("데이터 타입:", type(num))
⚠ 주의:
문자열이 정수로 변환될 수 없는 값이면 오류(ValueError)가 발생한다.
🔹 float() : 문자열 → 실수형 변환
----------------------------------------------
입력값을 실수(float)로 변환할 때는 float()를 사용한다.
num = float(input("실수를 입력하세요: "))
print("입력된 값:", num)
print("데이터 타입:", type(num))
🔹 str() : 숫자 → 문자열 변환
-----------------------------------------------
숫자를 문자열로 변환할 때는 str()을 사용한다.
num = 123
text = str(num)
print("변환된 값:", text)
print("데이터 타입:", type(text))
------------------------------------------------
3️⃣ 여러 개의 값 입력받기 (split())
사용자가 여러 개의 값을 입력할 때는 split()을 활용할 수 있다.
🔹 공백 기준으로 여러 값 입력받기
data = input("공백으로 구분하여 입력하세요: ").split()
print("입력된 값:", data)
print("데이터 타입:", type(data))
📌 split()을 사용하면 리스트(list)로 변환되며, 리스트 요소는 문자열(str)이다.
🔹 입력값을 정수 리스트로 변환 (map() 활용)
numbers = list(map(int, input("공백으로 구분하여 정수를 입력하세요: ").split()))
print("입력된 값:", numbers)
print("데이터 타입:", type(numbers))
📌 map(int, input().split())을 사용하면 입력값을 int로 변환하여 리스트로 저장할 수 있다.
🔹 쉼표(,)로 구분된 입력값 받기
쉼표(,)로 입력된 값을 리스트로 변환할 때 split(",")을 사용한다.
data = input("쉼표로 구분하여 입력하세요: ").split(",")
print("입력된 값:", data)
14_데이터 출력
1️⃣ 콤마(,)를 이용한 데이터 연속 출력
파이썬에서 print() 함수는 여러 개의 값을 쉼표(,)로 구분하여 연속 출력할 수 있다.
기본적으로 쉼표(,)를 사용하면 값 사이에 공백( )이 자동으로 추가된다.
print("이름:", "홍길동", "나이:", 25, "직업:", "개발자")
공백을 없애거나 다른 구분자를 넣고 싶다면 sep 옵션을 사용할 수 있다.
print("이름:", "홍길동", "나이:", 25, "직업:", "개발자", sep=", ")
2️⃣ 포맷 문자열을 이용한 데이터 출력
🔹 f-string (Python 3.6 이상)
name = "홍길동"
age = 25
job = "개발자"
print(f"이름: {name}, 나이: {age}, 직업: {job}")
🔹 format() 함수
print("이름: {}, 나이: {}, 직업: {}".format(name, age, job))
🔹 % 포맷팅 (구식 방법)
print("이름: %s, 나이: %d, 직업: %s" % (name, age, job))
3️⃣ 특수문자: 탭(\t)과 개행(\n)
- 개행 문자 (\n)
줄 바꿈을 할 때 사용한다.
print("첫 번째 줄\n두 번째 줄\n세 번째 줄")
- 탭 문자 (\t)
탭 간격을 추가하여 정렬할 때 사용한다.
print("이름\t나이\t직업")
print("홍길동\t25\t개발자")
print("김철수\t30\t디자이너")
- 문자열 내에서 \n, \t 등의 특수문자를 문자 그대로
출력하려면 백슬래시(\)를 한 번 더 사용한다.
print("개행문자: \\n, 탭문자: \\t")
1️⃣ format() 함수
format() 함수는 {}(중괄호)를 사용하여 문자열 내에서 변수를 삽입할 수 있다.
name = "홍길동"
age = 25
job = "개발자"
print("이름: {}, 나이: {}, 직업: {}".format(name, age, job))
위치 인덱스를 사용하면 같은 변수를 여러 번 활용할 수 있다.
print("이름: {0}, 나이: {1}, 직업: {0}".format(name, age))
키워드 인자를 사용할 수도 있다.
print("이름: {name}, 나이: {age}, 직업: {job}".format(name="이영희", age=22, job="디자이너"))
2️⃣ 형식문자 (% 포맷팅)
printf 스타일 포맷팅으로, % 기호를 사용하여 데이터를 삽입할 수 있다.
형식문자 설명
%d 정수 (decimal)
%f 실수 (float)
%s 문자열 (string)
%x 16진수 (hex)
%o 8진수 (octal)
3️⃣ 소수점 자릿수 정하기
소수점 이하 자리수를 조절하려면 format() 또는 f-string을 사용할 수 있다.
1) format() 함수 활용
pi = 3.1415926535
print("원주율: {:.2f}".format(pi))
2) f-string 활용 (Python 3.6 이상)
print(f"원주율: {pi:.3f}")
3) % 포맷팅 활용
print("원주율: %.4f" % pi)
4) 정수와 실수를 정렬하여 출력
print("정수: {:5d}, 실수: {:8.2f}".format(42, 3.14159))
{:5d}: 정수를 최소 5자리 너비로 출력 (앞에 공백 추가)
{:8.2f}: 실수를 최소 8자리 너비로 출력, 소수점 이하 2자리까지 표시
16_산술 연산자(덧셈, 뺄셈)
1️⃣ format() 함수
format() 함수는 {}(중괄호)를 사용하여 문자열 내에서 변수를 삽입할 수 있다.
name = "홍길동"
age = 25
job = "개발자"
print("이름: {}, 나이: {}, 직업: {}".format(name, age, job))
위치 인덱스를 사용하면 같은 변수를 여러 번 활용할 수 있다.
print("이름: {0}, 나이: {1}, 직업: {0}".format(name, age))
키워드 인자를 사용할 수도 있다.
print("이름: {name}, 나이: {age}, 직업: {job}".format(name="이영희", age=22, job="디자이너"))
2️⃣ 형식문자 (% 포맷팅)
printf 스타일 포맷팅으로, % 기호를 사용하여 데이터를 삽입할 수 있다.
형식문자 설명
%d 정수 (decimal)
%f 실수 (float)
%s 문자열 (string)
%x 16진수 (hex)
%o 8진수 (octal)
3️⃣ 소수점 자릿수 정하기
소수점 이하 자리수를 조절하려면 format() 또는 f-string을 사용할 수 있다.
1) format() 함수 활용
pi = 3.1415926535
print("원주율: {:.2f}".format(pi))
2) f-string 활용 (Python 3.6 이상)
print(f"원주율: {pi:.3f}")
3) % 포맷팅 활용
print("원주율: %.4f" % pi)
4) 정수와 실수를 정렬하여 출력
print("정수: {:5d}, 실수: {:8.2f}".format(42, 3.14159))
{:5d}: 정수를 최소 5자리 너비로 출력 (앞에 공백 추가)
{:8.2f}: 실수를 최소 8자리 너비로 출력, 소수점 이하 2자리까지 표시
17_산술 연산자(곱셈과 나눗셈)
18_산술 연산자(나머지와 몫)
19_산술 연산자(거듭제곱)
20_복합연산자