
데이터를 저장하는 메모리 공간
변수 선언 및 초기화
변수 선언은 변수를 생성하는 과정이고, 초기화는 변수에 초기 값을 할당하는 과정입니다. 파이썬에서는 변수를 선언할 때 명시적으로 데이터 타입을 지정하지 않으며, 값이 할당될 때 자동으로 데이터 타입이 결정됩니다.
변수 선언 및 초기화 예제
x = 10 # 정수형 변수 선언 및 초기화
y = "Hello" # 문자열 변수 선언 및 초기화
z = 3.14 # 부동 소수점 변수 선언 및 초기화
print(x) # 10 출력
print(y) # Hello 출력
print(z) # 3.14 출력
1. 정수 (int)
정수(int)는 소수점이 없는 숫자입니다. 정수는 양수, 음수 및 0을 포함합니다.
a = 10
b = -5
c = 0
2. 부동 소수점 (float)
부동 소수점(float)은 소수점이 있는 숫자입니다. 실수를 표현하는 데 사용됩니다.
x = 3.14
y = -0.5
z = 0.0
3. 문자열 (str)
문자열(str)은 문자의 집합으로, 큰따옴표나 작은따옴표로 둘러싸인 텍스트입니다.
s1 = "Hello"
s2 = 'World'
s3 = "!"
4. 불리언 (bool)
불리언(bool)은 참(True) 또는 거짓(False)을 나타내는 자료형입니다.
is_true = True
is_false = False
리스트 (List)
순서가 있는 변경 가능한 컬렉션
리스트는 대괄호[]로 정의되고, 각 요소는 쉼표로 구분됩니다.
fruit_tuple = ["apple", "banana", "cherry"]
number_tuple = [1, 2, 3, 4, 5]
튜플 (Tuple)
순서가 있는 변경 불가능한 컬렉션
튜플은 소괄호()로 정의되며, 각 요소는 쉼표로 구분됩니다.
fruit_tuple = ("apple", "banana", "cherry")
number_tuple = (1, 2, 3, 4, 5)
딕셔너리 (Dictionary)
키-값 쌍으로 이루어진 변경 가능한 컬렉션
딕셔너리는 순서가 없으며, 각 키는 고유해야 합니다.
딕셔너리는 중괄호({})로 정의되며, 각 키-값 쌍은 콜론(:)으로 구분됩니다.
person = {"name": "John", "age": 30, "city": "New York"}
집합 (Set)
순서가 없고 중복을 허용하지 않는 변경 가능한 컬렉션
집합은 중괄호({})로 정의되며, 각 요소는 쉼표로 구분됩니다.
fruits_set = {"apple", "banana", "cherry"}
numbers_set = {1, 2, 3, 4, 5}
프로그램의 흐름을 제어하는 데 사용되는 구조
조건에 따라 실행 경로를 결정하거나, 특정 코드를 반복해서 실행하는 등의 역할을 합니다. 파이썬에서 주로 사용되는 제어문에는 조건문과 반복문이 있습니다.
주어진 조건이 참인지 거짓인지에 따라 다른 코드를 실행하는 문장
if 문:
x = 10
if x > 5:
print("x는 5보다 큽니다.")
elif 문:
x = 10
if x > 15:
print("x는 15보다 큽니다.")
elif x > 5:
print("x는 5보다 크고 15보다 작거나 같습니다.")
else 문:
x = 3
if x > 5:
print("x는 5보다 큽니다.")
else:
print("x는 5보다 작거나 같습니다.")
특정 코드를 여러 번 반복해서 실행할 때 사용하는 문장
1. for 문:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)2. while 문:
count = 0
while count < 5:
print(count)
count += 1반복문의 실행을 제어하기 위한 키워드
break:
for i in range(10):
if i == 5:
break
print(i)
continue:
for i in range(10):
if i % 2 == 0:
continue
print(i)
pass:
for i in range(5):
if i == 3:
pass
else:
print(i)
특정 작업을 수행하는 코드 블록
함수를 사용하면 코드의 재사용성이 높아지고, 코드가 더 깔끔하고 읽기 쉬워집니다. 함수를 정의할 때는 def 키워드를 사용하고, 함수를 호출할 때는 함수 이름 뒤에 괄호를 사용합니다.
def greet(name): # name은 매개변수
print("Hello, {name}!)"
greet("yoon") # "Alice"는 인수
open() 함수를 사용하여 파일을 엽니다. 파일을 열 때 파일 경로와 모드를 지정합니다.read(), readline(), readlines() 메서드를 사용하여 파일의 내용을 읽습니다.write(), writelines() 메서드를 사용하여 파일에 내용을 씁니다.close() 메서드를 사용하여 파일을 닫습니다. 또는 with 문을 사용하여 파일을 자동으로 닫을 수 있습니다.# 파일 열기
file = open("example.txt", "r")
# 파일 읽기
content = file.read()
print(content)
# 파일 닫기
file.close()
# 파일 쓰기
file = open("example.txt", "w")
file.write("Hello, World!")
file.close()
# with 문을 사용한 파일 열기와 닫기
with open("example.txt", "r") as file:
content = file.read()
print(content)
r (읽기 모드):
with open("example.txt", "r") as file:
content = file.read()
print(content)
w (쓰기 모드):
with open("example.txt", "w") as file:
file.write("Hello, World!")
a (추가 모드):
with open("example.txt", "a") as file:
file.write("\nAppending text")
파이썬 코드 파일로, 변수, 함수, 클래스 등을 정의하고 재사용할 수 있는 코드 집합
모듈은 다른 파이썬 프로그램에서 불러와 사용할 수 있습니다. 모듈을 사용하면 코드의 재사용성을 높이고, 코드 관리를 더 쉽게 할 수 있습니다.
import 키워드를 사용하여 모듈을 불러옵니다.# math 모듈을 import하여 사용
import math
result = math.sqrt(16)
print(result) # 4.0 출력
from ... import 구문을 사용합니다.# math 모듈에서 sqrt 함수만 import하여 사용
from math import sqrt
result = sqrt(16)
print(result) # 4.0 출력
# math 모듈을 별칭 m으로 import하여 사용
import math as m
result = m.factorial(4)
print(result) # 24 출력
my_module.py 파일을 만들어서 다음과 같이 사용할 수 있습니다.# my_module.py 파일 내용
def greet(name):
return f"Hello, {name}!"
# main.py 파일에서 my_module 모듈을 import하여 사용
import my_module
print(my_module.greet("yoon")) # "Hello, yoon!" 출력
여러 모듈을 묶어 놓은 디렉토리
패키지는 모듈을 계층적으로 구성할 수 있게 하여, 코드의 구조를 체계적으로 관리할 수 있게 합니다. 패키지 디렉토리에는 __init__.py 파일이 포함되어 있어야 하며, 이 파일은 해당 디렉토리가 패키지임을 파이썬에 알립니다.
mypackage/
__init__.py
module1.py
module2.py
# mypackage 패키지의 module1을 import하여 사용
from mypackage import module1
module1.some_function()
예외 처리(Exception Handling)는 프로그램 실행 중에 발생할 수 있는 오류를 감지하고, 이를 처리하여 프로그램이 예기치 않게 중단되지 않도록 하는 기법입니다. 이를 통해 오류 상황에서도 프로그램이 안정적으로 동작할 수 있게 합니다.
trytry:
x = int(input("숫자를 입력하세요: ")) # 사용자 입력을 정수로 변환 시도
except ValueError:
print("유효한 숫자가 아닙니다.") # 정수가 아닌 값을 입력하면 예외 발생
excepttry:
x = int(input("숫자를 입력하세요: ")) # 사용자 입력을 정수로 변환 시도
except ValueError:
print("유효한 숫자가 아닙니다.") # 정수가 아닌 값을 입력하면 예외 발생
elsetry:
x = int(input("숫자를 입력하세요: ")) # 사용자 입력을 정수로 변환 시도
except ValueError:
print("유효한 숫자가 아닙니다.") # 정수가 아닌 값을 입력하면 예외 발생
else:
print(f"입력한 숫자는 {x}입니다.") # 예외가 발생하지 않으면 입력한 숫자 출력
finallytry:
x = int(input("숫자를 입력하세요: ")) # 사용자 입력을 정수로 변환 시도
except ValueError:
print("유효한 숫자가 아닙니다.") # 정수가 아닌 값을 입력하면 예외 발생
else:
print(f"입력한 숫자는 {x}입니다.") # 예외가 발생하지 않으면 입력한 숫자 출력
finally:
print("프로그램 종료") # 예외 발생 여부와 관계없이 항상 실행
프로그램을 여러 개의 독립적인 객체(object)로 나누어 작성하는 프로그래밍 패러다임
각 객체는 데이터(속성)와 그 데이터를 조작하는 함수(메서드)로 구성됩니다. OOP는 코드의 재사용성, 확장성, 유지 보수성을 높이는 데 유용합니다.
클래스(Class)와 객체(Object)
# 클래스 정의
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
def bark(self):
print(f"I am {self.name}!")
# 객체 생성
my_bordercollie = Dog("", 3)
my_bordercollie.bark() # "I am my_bordercollie!" 출력
속성(Attributes)
class Dog:
def __init__(self, name, age):
self.name = name # 이름 속성
self.age = age # 나이 속성
메서드(Methods)
class Dog:
def bark(self):
print("Woof!")
상속(Inheritance)
class Animal:
def __init__(self, name):
self.name = name
def make_sound(self):
pass
class Dog(Animal):
def make_sound(self):
print("Woof!")
class Cat(Animal):
def make_sound(self):
print("Meow!")
my_dog = Dog("Buddy")
my_dog.make_sound() # "Woof!" 출력
my_cat = Cat("Kitty")
my_cat.make_sound() # "Meow!" 출력