Programming Languages(81)
-
클래스와 객체지향 프로그래밍
1. 클래스와 객체지향 프로그래밍객체지향 프로그래밍 소개1.1 객체지향 프로그래밍이란?객체지향 프로그래밍(Object-Oriented Programming, OOP)은 프로그램을 객체(Object)들의 모음으로 구성하는 프로그래밍 패러다임입니다. 각 객체는 데이터(속성)와 해당 데이터를 처리하는 메서드(기능)를 가지고 있습니다.1.2 객체지향 프로그래밍의 장점코드 재사용성: 한번 작성한 클래스는 여러 곳에서 재사용할 수 있습니다.유지보수 용이성: 객체 단위로 코드가 모듈화되어 있어 디버깅과 수정이 쉽습니다.확장성: 기존 코드 수정 없이 새로운 기능을 추가할 수 있습니다.현실 세계 모델링: 현실 세계의 개체를 프로그램 내에서 표현하기 용이합니다.1.3 객체지향 프로그래밍의 핵심 개념클래스(Class): 객..
2025.03.26 -
함수 디버깅과 테스트
함수 디버깅과 테스트디버깅 기법print() 문 사용하기def 문제_함수(a, b): print(f"입력값: a={a}, b={b}") 결과 = a / b print(f"결과: {결과}") return 결과# 함수 호출try: 문제_함수(10, 0)except Exception as e: print(f"오류 발생: {e}")예외 처리로 디버깅def 안전한_나누기(a, b): try: print(f"a={a}, b={b} 나누기 시도") 결과 = a / b return 결과 except ZeroDivisionError: print("오류: 0으로 나눌 수 없습니다.") return None exc..
2025.03.26 -
함수의 효율성과 성능 최적화
함수의 효율성과 성능 최적화함수를 작성할 때 성능과 효율성을 고려하는 것이 중요합니다.재귀 함수와 메모이제이션(Memoization)재귀 함수는 직관적이지만 중복 계산으로 인해 비효율적일 수 있습니다. 메모이제이션을 통해 이를 개선할 수 있습니다.# 일반적인 피보나치 재귀 함수 (비효율적)def 피보나치_일반(n): if n 함수 최적화 팁불필요한 계산 피하기# 비효율적인 방법def 제곱합_비효율(n): 합계 = 0 for i in range(1, n+1): 합계 += i ** 2 return 합계# 수학적 공식을 활용한 효율적인 방법def 제곱합_효율(n): return n * (n + 1) * (2 * n + 1) // 6적절한 자료구조 사용하기# 리스트를 사용..
2025.03.26 -
함수 모듈화와 가져오기
함수 모듈화와 가져오기프로그램이 커질수록 함수를 개별 파일로 모듈화하여 관리하면 유지보수가 쉬워집니다.모듈 만들기파일명: my_math_functions.pydef 더하기(a, b): """두 수의 합을 반환""" return a + bdef 빼기(a, b): """두 수의 차를 반환""" return a - bdef 곱하기(a, b): """두 수의 곱을 반환""" return a * bdef 나누기(a, b): """두 수의 나눗셈 결과를 반환""" if b == 0: raise ValueError("0으로 나눌 수 없습니다.") return a / b모듈 가져오기# 전체 모듈 가져오기import my_math_functions결과 = my..
2025.03.26 -
함수형 프로그래밍 기초
함수형 프로그래밍 기초함수형 프로그래밍은 함수를 일급 객체로 취급하고, 데이터의 변경보다 함수의 응용을 중심으로 하는 프로그래밍 패러다임입니다.map() 함수map() 함수는 각 요소에 함수를 적용한 결과를 반환합니다.숫자_리스트 = [1, 2, 3, 4, 5]# 제곱 함수def 제곱(x): return x ** 2# map() 함수를 사용하여 모든 요소에 제곱 함수 적용제곱_리스트 = list(map(제곱, 숫자_리스트))print(제곱_리스트) # 출력: [1, 4, 9, 16, 25]# 람다 함수와 함께 사용세제곱_리스트 = list(map(lambda x: x ** 3, 숫자_리스트))print(세제곱_리스트) # 출력: [1, 8, 27, 64, 125]filter() 함수filter(..
2025.03.26 -
함수 고급 기능
함수 고급 기능함수 객체파이썬에서 함수는 일급 객체(first-class object)로, 다른 변수와 마찬가지로 할당, 전달, 반환할 수 있습니다.def 인사(이름): return f"안녕하세요, {이름}님!"# 함수를 변수에 할당인사_함수 = 인사# 할당된 변수를 통해 함수 호출메시지 = 인사_함수("철수")print(메시지) # 출력: 안녕하세요, 철수님!함수를 인수로 전달def 적용_함수(함수, 값): """주어진 함수를 값에 적용하는 함수""" return 함수(값)def 제곱(x): return x ** 2def 세제곱(x): return x ** 3# 함수를 인수로 전달결과1 = 적용_함수(제곱, 5)결과2 = 적용_함수(세제곱, 5)print(결과1) # 출력..
2025.03.26