| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- System Call
- cs231n
- DFS
- BFS
- deep learning
- 밑바닥부터 시작하는 딥러닝2
- computer vision
- Data Science
- paper review
- On-memory file system
- Machine Learning
- Gentoo2
- Humble
- CPP
- C++
- RNN
- CNN
- Multimedia
- Seoul National University
- Linux
- do it! 알고리즘 코딩테스트: c++편
- file system
- Operating System
- ROS2
- SQLD
- Baekjoon
- Process
- Robocup@Home 2026
- Python
- Optimization
Archives
- Today
- Total
newhaneul
[Advanced Python Programming] Lecture 5. Function 본문
4. University Study/Advanced Python Programming
[Advanced Python Programming] Lecture 5. Function
뉴하늘 2026. 4. 12. 21:52728x90
포스팅은 인하대학교 허혜선 교수님의 [202601-EEC3408-001] 고급파이썬프로그래밍을 수강하고 공부한 내용을 정리하기 위한 포스팅입니다.
- 함수에서 값을 여러 개 반환할 때는 return에 값이나 변수를 ,(콤마)로 구분해서 지정하면 됨 $\rightarrow$ 파이썬만 가능
- 여러 개 값을 변수 한 개에 저장해서 출력해보면 tuple이 반환됨
def 함수이름(매개변수):
return 반환값1, 반환값2
def add_sub(a, b):
return a+b, a-b
x = add_sub(10, 20)
x
(30, -10)
- 함수 호출 스택 과정
- 함수는 스택(stack) 방식으로 호출됨
- 함수를 호출하면 스택의 아래쪽 방향으로 함수가 추가되고 함수가 끝나면 위쪽 방향으로 사라짐
- 프레임은 스택 안에 있어서 각 프레임을 스택 프레임이라고 부름
- 전역 프레임은 스크립트 파일의 실행이 끝나면 사라짐





- unpacking
x = [10, 20, 30]
print(x)
print(*x)
[10, 20, 30]
10 20 30
def 함수이름(*매개변수):
코드
def print_numbers(*args):
for arg in args:
print(arg)
print_numbers(10, 20, 30, 40)
- 키워드 인수 (keyword argument)
def personal_info(name, age, address):
print(name)
print(age)
print(address)
personal_info(name='홍길동', age=30, address='인천광역시')
personal_info(address='인천광역시', name='홍길동', age=30)
홍길동
30
인천광역시
홍길동
30
인천광역시
- dictionary unpacking
- 딕셔너리의 키는 반드시 문자열 형태야 함
- 딕셔너리 언패킹을 사용할 때는 함수의 매개변수 이름과 딕셔너리의 키 이름이 같아야 함
def 함수이름(**매개변수):
코드
def personal_info(name, age, address):
print(name)
print(age)
print(address)
x = {'name': '홍길동', 'age': 30, 'address': '인천광역시'}
personal_info(**x)
홍길동
30
인천광역시
def personal_info(name, age, address):
print(name)
print(age)
print(address)
personal_info(**{'name': '홍길동', 'address': '인천광역시', 'age': 30})
홍길동
30
인천광역시

- 딕셔너리는 *을 한 번만 사용하면 키를 사용한다는 뜻이고, **처럼 딕셔너리를 두 번 언패킹하여 값을 사용하도록 만들어야 한다.
def personal_info(name, age, address):
print(name)
print(age)
print(address)
personal_info(*{'name': '홍길동', 'address': '인천광역시', 'age': 30})
name
address
age
- 키워드 인수를 사용하는 가변 인수 함수는 매개변수 앞에 **를 붙여서 만든다. 관례적으로 keyword arguments를 줄여서 kwarg로 사용한다.
def personal_info(**kwargs):
for kw, arg in kwargs.items():
print(kw, ':', arg, sep = ' ')
def personal_info(**kwargs):
if 'name' in kwargs:
print(kwargs['name'])
if 'age' in kwargs:
print(kwargs['age'])
if 'address' in kwargs:
print(kwargs['address'])
x = {'name': '홍길동', 'address': '인천광역시', 'age': 30}
personal_info(**x)
홍길동
30
인천광역시
- 매개변수에 초기값 지정하기
- 초깃값이 지정된 매개변수 다음에는 초깃값이 없는 매개변수가 올 수 없음을 주의해야한다.
- 초깃값이 지정된 매개변수는 뒤쪽에 몰아줘야함
def personal_info(name, address = '비공개', age):
pass
Cell In[84], line 1
def personal_info(name, address = '비공개', age):
^
SyntaxError: non-default argument follows default argument
def personal_info(name, age, address = '비공개'):
pass728x90
'4. University Study > Advanced Python Programming' 카테고리의 다른 글
| [Advanced Python Programming] Lecture 7. Special Methods (1) | 2026.04.12 |
|---|---|
| [Advanced Python Programming] Lecture 6. Object (1) | 2026.04.12 |
| [Advanced Python Programming] Lecture 4. Applications of Lists and Tuples (0) | 2026.04.12 |
| [Advanced Python Programming] Lecture 3. Dictionary (0) | 2026.04.12 |
| [Advanced Python Programming] Lecture 2. Sequence Data Types (0) | 2026.04.12 |