십대를 위한 코딩 78

16. 함수 고급 활용과 모듈의 기초

📘 Day 16. 함수 고급 활용과 모듈의 기초1. 함수 인수 고급 정리✅ Keyword 가변 인수 (**kwargs)함수 정의 시 **kwargs를 사용하면 개수에 상관없이 키워드 인수를 받을 수 있음전달된 값은 딕셔너리 형태로 저장됨def print_info(**kwargs): for key, value in kwargs.items(): print(f"{key} : {value}")print_info(name="지훈", age=18, score=95)✅ 함수 호출 시 unpacking자료형 기호 설명tuple*인수 여러 개로 분리dict**키워드 인수로 분리def introduce(name, age): print(f"{name}은 {age}살입니다.")info = ("지수",..

15. 함수 인자 활용과 모듈 개념 이해

📘 Day 15. 함수 인자 활용과 모듈 개념 이해1. 함수 설계 시 고려 순서무슨 기능을 수행할지 결정호출 시 전달받을 인수(parameter) 결정결과를 return할지 여부 결정2. 함수의 인수(Argument & Parameter)용어 설명Parameter함수 정의 시 사용된 변수Argument함수 호출 시 전달하는 값3. 인수 전달 방식전달 방식 특징Call by Value값을 복사하여 전달 (불변 자료형: int, float, str, tuple)Call by Reference참조(메모리 주소)를 전달 (가변 자료형: list, dict, set)Call by Object파이썬에서 사용되는 방식. 전달된 객체의 특성에 따라 동작예시def modify_list(my_list): my_li..

14. 함수(Function)의 정의, 구조, 그리고 호출 방식

📘 Day 14. 함수(Function)의 정의, 구조, 그리고 호출 방식1. 함수란?단위 기능을 수행하는 코드 블럭복잡한 문제를 기능 단위로 분해하여 작성중복 코드를 줄이고, 재사용성과 유지보수성을 높여줌2. 함수 사용의 목적목적 설명중복 제거동일한 기능 반복 구현 방지유지 보수코드 이해도와 수정 용이성 향상논리 분할복잡한 프로그램을 기능별로 나눔재사용성외부 모듈/라이브러리로도 활용 가능3. 함수의 종류분류 설명내장 함수파이썬에 기본 포함된 함수 (print(), len() 등)3rd party 함수외부 패키지 설치 후 사용 (예: numpy.mean())사용자 정의 함수직접 정의한 함수4. 함수 정의 형식def 함수이름([인수]): # 기능을 수행하는 코드 [return 반환값]예시 1:..

13. 집합(Set)과 함수(Function)의 기초

📘 Day 13. 집합(Set)과 함수(Function)의 기초1. 집합(Set)✔️ 특징중복 없이 데이터를 저장순서 없음 → 인덱싱, 슬라이싱 불가가변형 자료형 (값 추가/삭제 가능)집합 연산(합집합, 교집합 등)에 특화된 자료형✅ 생성 방법s = {1, 2, 3} # 중괄호 사용s = set([1, 2, 3]) # list → set 형변환empty = set() # 빈 set은 반드시 set() 사용{} 만 쓰면 빈 딕셔너리가 생성되므로 주의📌 주요 메서드메서드 설명add(x)요소 추가update(iterable)여러 요소 한꺼번에 추가remove(x)요소 삭제 (없으면 오류 발생)discard(x)요소 삭제 (없으면 무시)p..

12. 딕셔너리 메서드와 실전 활용

📘 Day 12. 딕셔너리 메서드와 실전 활용1. 딕셔너리 주요 메서드메서드 설명 예시get(key, default)key로 값 검색. 없으면 기본값 반환d.get("score", 0)keys()key 목록 반환d.keys()values()value 목록 반환d.values()items()(key, value) 쌍 목록 반환d.items()update(other_dict)다른 딕셔너리와 병합d.update(d2)pop(key)key로 항목 삭제 후 value 반환v = d.pop("name")clear()전체 항목 삭제d.clear()copy()얕은 복사d2 = d.copy()❗ get()은 안전하게 값을 검색할 때 유용하며, 존재하지 않는 key를 조회해도 오류가 발생하지 않음.🔁 깊은 복사 (de..

11. 딕셔너리(dict)의 개념과 활용

📘 Day 11. 딕셔너리(dict)의 개념과 활용1. 딕셔너리란?여러 데이터를 key: value 쌍으로 저장하는 시퀀스 자료형**가변형(mutable)**이며, 리스트처럼 자유롭게 값을 추가, 수정, 삭제할 수 있음인덱싱 불가, 반드시 key를 통해 접근key는 중복 불가, 불변형(immutable) 자료형만 가능 (예: str, int, tuple)value는 어떤 자료형이든 저장 가능2. 딕셔너리 생성 방법# 1. 중괄호를 이용한 생성student = { "name": "홍길동", "age": 18, "grade": "A"}# 2. dict() 함수를 이용한 생성info = dict(name="이몽룡", age=20)3. 딕셔너리의 특징항목 설명데이터 형식{key: value}순..

10. 리스트 복사와 고급 활용

📘 Day 10. 리스트 복사와 고급 활용1. 리스트 복사 방법✅ 전체 복사 방법방법 설명[:]전체 슬라이싱 복사list()생성자를 이용한 복사.copy()리스트 메서드를 이용한 복사a = [1, 2, 3]b = a[:] # 슬라이싱c = list(a) # list 함수d = a.copy() # copy 메서드모두 얕은 복사(shallow copy)에 해당→ 리스트 안에 중첩 리스트가 있다면 내부 요소는 공유됨🔁 깊은 복사(Deep Copy)중첩 리스트까지 완전히 복사할 때 사용copy 모듈의 deepcopy() 함수 사용import copya = [[1, 2], [3, 4]]b = copy.deepcopy(a)2. 리스트 비교같은 인덱스의 값을 하나씩 비교값..

09. 리스트의 활용과 정렬

📘 Day 09. 리스트의 활용과 정렬1. 중첩 리스트(Nested List)리스트 내부에 또 다른 리스트를 요소로 포함하는 구조l = [ [1, 2], [3, 4] ]값 접근 방법:print(l[0]) # [1, 2]print(l[0][0]) # 1print(l[1][1]) # 4중첩 정도에 따라 인덱스를 연달아 사용하여 내부 값에 접근2. 리스트 메서드(method)➕ 값 추가메서드 설명 예시append(x)마지막에 값 추가lst.append(10)insert(i, x)i번째 위치 앞에 값 삽입lst.insert(1, 20)append()는 리스트 끝에 무조건 추가insert()는 특정 위치에 값 삽입 (기존 요소는 뒤로 밀림)✏️ 값 변경인덱싱으로 변경lst[0] = 1..

08. 리스트(list)

📘 Day 08. 리스트(list)1. 리스트란?여러 값을 순서대로 저장하는 시퀀스 자료형가변형(mutable)으로 값을 자유롭게 추가, 삭제, 변경할 수 있음파이썬에서 가장 많이 사용하는 자료형 중 하나2. 리스트 생성 방법# 대괄호를 이용한 생성fruits = ['apple', 'banana', 'cherry']# list() 함수를 이용한 생성 (다른 시퀀스를 변환)numbers = list((1, 2, 3))# 빈 리스트 생성empty_list = []3. 리스트의 주요 연산📌 인덱싱(Indexing)a = [10, 20, 30]print(a[0]) # 10print(a[-1]) # 30 (역순 인덱스)위치를 통해 요소에 접근하거나 수정 가능a[1] = 25 # 값 변경..

07. 문자열(str)과 튜플(tuple)

📘 Day 07. 문자열(str)과 튜플(tuple)1. 문자열(str) 심화🔄 시퀀스 자료형의 반복str, list, tuple 등 시퀀스 자료형은 **반복자(iterator)**를 내장하고 있어 for문을 통해 값을 하나씩 순회할 수 있음인덱스를 함께 사용하려면 enumerate() 함수를 활용text = "Python"for index, char in enumerate(text): print(index, char)🔧 문자열 메서드(method)문자열은 객체이므로, 메서드를 통해 다양한 처리를 수행할 수 있음메서드는 일시적으로 값을 처리하며, 원본 문자열은 변하지 않음s = "Hello Python"print(s.upper()) # HELLO PYTHONprint(s.find("P"..