함수 구현
1. 함수의 선언부와 구현부를 구성
# 선언부
def 함수이름([변수, 변수, ...]):
# 구현부
실행구문1
실행구문2
실행구문3
...
[return [결과값]]2. 선언부 마지막에는 : 을 넣어 구현부와 구분
3. 구현부 작성
Parameter, argument
# 함수 정의
def greet(name):
print(f"{name}님 안녕하세요.")
# 함수 호출
greet("김철수")
greet(12345)
# 실행 결과
김철수님 안녕하세요.
12345님 안녕하세요.
```python
# 함수 정의
def information(name, user_id):
print(f"{name}님의 아이디는 {user_id}입니다.")
# 함수 호출
information("김철수", 12345)
# 실행 결과
김철수님의 아이디는 12345입니다.
``` # 함수 정의
def name_info(name=None):
print(f"이름: {name}")
# 함수 호출
name_info("김철수") # argument를 입력받은 경우
name_info() # argument를 입력받지 않은 경우
# 실행 결과
이름: 김철수
이름: None
```python
# 함수 정의
def user_info(name, id, age="", tall=""):
print(f"{name}(id: {id}, 연령: {age}, 키: {tall}cm)")
# 함수 호출
user_info("김철수", 374198, "", 167)
# 실행 결과
김철수(id: 374198, 연령: , 키: 167cm)
```Positional argument, Keyword argument
# 함수 정의
def user_info2(name, id, age, tall):
print(f"{name}(id: {id}, 연령: {age}, 키: {tall}cm)")
# 함수 호출
user_info(45672, “김영희”, 25, 165)
# 실행 결과
45672(id: 김영희, 연령: 25, 키: 165cm)
# 함수 정의
def user_info3(name, id, age, tall):
print(f"{name}(id: {id}, 연령: {age}, 키: {tall}cm)")
# 함수 호출
user_info(id=32187, name=“한석봉”, tall=179, age=22)
# 실행 결과
한석봉(id: 32187, 연령: 22, 키: 179cm)
위치 가변인자, 키워드 가변인자
위치 가변인자 *args
여러 개의 위치 기반 인자(Positional argument)를 하나의 튜플로 받아 처리
함수 정의 시 Parameter 입력 자리에 *args 입력
# 함수 정의
def argument_test(*args):
print(args)
# 함수 호출
argument_test()
argument_test(10)
argument_test(10, 20, 30)
# 출력 결과
()
(10,)
(10, 20, 30)
키워드 가변인자 **kwargs
**kwargs 입력# 함수 정의
def argument_test2(**kwargs):
print(kwargs)
# 함수 호출
argument_test2()
argument_test2(name="김철수", age=35, address="부산")
# 출력 결과
{}
{'name': '김철수', 'age': 35, 'address': '부산'}가변인자 입력 규칙
# 함수 정의
def argument_test3(*args, name, **kwargs):
print(args)
print(name)
print(kwargs)
# 함수 호출
argument_test3("kimcs123", 4, 5, name="김철수", age=35, region="서울")
# 출력 결과
('kimcs123', 4, 5)
김철수
{'age': 35, 'region': '서울'}
지역 변수, 전역 변수
지역 변수 (local variable)
전역 변수 (global variable)
global 키워드 이용해 사용 선언