SiLaure's Data
[Python] 14-1. Python 기초 문법 - Function 2(Implementation) (1) 본문
Records of/Learning
[Python] 14-1. Python 기초 문법 - Function 2(Implementation) (1)
data_soin 2021. 7. 22. 15:24- 함수 정의의 다양한 형태 연습하기
1. 가장 흔하게 사용되는 경우 : 함수 parameter와 return이 모두 존재하는 경우
def add(a, b) :
return a + b
def get_loss(model, matric) :
...
...
...
return model.predict(result, metric=[metric])
2. 함수 parameter는 없고 return이 존재하는 경우
: parameter가 없어도 뻔한 일을 할 때
e.g.
csv 파일을 불러오는 함수 : 불러오는 data가 존재하기 때문에 지정된 파일만 가져오면 된다. 따라서 return만 있다.
def get_data() :
data = pd.read_csv("test.csv")
return data
3. 함수 parameter는 있는데 return이 없는 경우
: 입력받은 데이터를 그대로 내보내거나, 어떤 데이터를 저장할 때(저장된 결과를 내보낼 필요가 없음)
def print_name(name) :
print(name)
def save_data(pate, data) :
data.to_csv(path)
4. 함수 parameter도 없고 return도 없는 경우
: 실행시키면 뻔한 결과가 나오는 함수의 경우 --단순동작-- 이거나,
지정된 데이터를 지정된 장소에 (e.g.텍스트 파일) 저장할 때
def say_hi() :
print("Hi!")
def save_txt() :
with open("test.txt", 'w') as f :
f.write(txt)
def 로 만든 함수를 user defined function이라고 한다.
Q. *특이한 케이스* 함수의 입력 parameter의 개수를 모를 때?
--입력 parameter가 너무 많을 때
def add_many(*args):
print(args, type(args))
add_many(1, 2, 3, 4)
출력 : (1, 2, 3, 4) <class 'tuple'>
A. *(asterisk)를 앞에 붙이는 것으로 여러개의 parameter를 받아서 tuple로 변환하여 준다.
def add_many(*args):
total = 0
for num in args :
total += num
return total # 위치 조심
add_many(1, 2, 3, 4)
출력 : 10
Q. 만약 parameter가 너무 많아서 몇 개만 입력 parameter로 넣고 싶을 때는 어떻게 할까?
A. 전부 의미가 있는 parameter인데 너무 많아서 다 외울 수도 없는 경우가 있다.
이럴 땐 default parameter를 지정해놓고, 필요한 parameter만 입력받는다.
이렇게 정의되는 함수의 parameter를 keyword parameter라고 한다.
e.g.
def default_add(a, b=10) :
return a + b
default_add(5, 5), default_add(5, )
=> b의 parameter가 들어오지 않으면 자동으로 b의 값을 10으로 지정한다.
'Records of > Learning' 카테고리의 다른 글
[Python] 15-2. Python 데이터 입출력(I,O) (2) (0) | 2021.07.23 |
---|---|
[Python] 15-. Python 데이터 입출력(I,O) (1) (0) | 2021.07.22 |
[Python] 13. Python 기초 문법 - Function 1 (Definition) (0) | 2021.07.22 |
12. Python 기초 문법 - Programming Practice(IF, while, for) --문제 풀기 (0) | 2021.07.22 |
[Python] 10. Python 기초 문법 - Iteration Statement(while) (0) | 2021.07.21 |
Comments