목표
1. function이 무엇인지 배워 봅니다.
2. function를 왜 써야 하는지 배워 봅니다.
3. function의 종류
4. function 사용법
강의
https://www.youtube.com/watch?v=og-d4H2i_oo&ab_channel=%EA%B9%80%EC%A7%84%EA%B6%8C
Function이란?
- 특정 목적의 작업을 수행하기 위한 코드의 집합입니다.
Function을 사용하는 이유?
1. 반복 작업 회피
- program에서 특정 작업을 여러 번 반복해야 할 때 function를 사용해서 Code를 재사용 하면됩니다.
2. 가독성
- program을 여러 개의 function로 나누어 모듈화를 하면 전체적으로 Code의 가독성이 좋아집니다.
3. 쉬운 유지 보수
- 프로그램에 문제가 발생하거나 기능의 변경이 필요할 때에도 손쉽게 유지보수를 할 수 있습니다.
Function의 종류
1. 표준 function(=내장(Built-in) function)
1) 정의
- "표준 library"에서 제공하는 function입니다.
2) 특징
- import를 하지 않아도 사용할 수 있습니다.
3) python 표준 library
https://docs.python.org/ko/3/library/index.html
2. 사용자 정의 function
1) 정의
- 사용자가 직접 만들어서 사용하는 function 입니다.
사용자 정의 function의 생성
1. 문법
1) 정의
(1) def
- function 정의 할 떄 사용하는 구문입니다.
(2) function_name
- function name은 소문자여야 하며 가독성을 높이기 위해 필요한 경우 밑줄로 단어를 구분해야 합니다.
(언어마다 code convetion이 다 다릅니다)
(3) parameter(매개 변수)
- parameter name은 소문자여야 하며 가독성을 높이기 위해 필요한 경우 밑줄로 단어를 구분해야 합니다.
(언어마다 code convetion이 다 다릅니다)
- parameter는 없어도 됩니다.
(4) code
- function에서 실행할 코드를 정의합니다.
(5) 반환 형식 정의
- code가 한 줄이라고 있으면 없어도 됩니다.
- return으로 호출한 곳에 값을 전달할 수 있습니다.
- code가 아예 없는 경우 pass를 사용합니다.
2) 호출
(1) function_name
- 호출할 function_name을 사용합니다.
(2) argument(전달인자)
- 변수또는 literal 값을 사용합니다.
*literal
- 소스 코드의 고정된 값을 대표하는 용어 입니다.
- https://ko.wikipedia.org/wiki/%EB%A6%AC%ED%84%B0%EB%9F%B4
- function 정의 따라 argument는 없을 수도 있습니다.
3) parameter와 agrument 로 구분하는 이유?
- parameter는 변수를 의미 합니다.
- argument는 값을 의미 합니다.
사용자 정의 Function을 정의하는 방법
1. parameter 없는 function
- parameter 없이 function을 정의 할 때 사용합니다.
def my_function():
print("Hello from a function")
my_function()
2. 한 개의 parameter function
- 1개의 parameter를 사용하여 function을 정의 할 때 사용합니다.
def my_function(fname):
print(fname + " Refsnes")
my_function("Emil")
my_function("Tobias")
my_function("Linus")
3. 다수의 parameter function
- 2개 이상의 parameter를 사용하여 function을 정의 할 때 사용합니다.
def my_function(fname, lname):
print(fname + " " + lname)
my_function("Emil", "Refsnes")
4. keyword parameter function
- function 호출 시 key = value 형태로 호출하고 싶을 때 사용합니다.
def my_function(child3, child2, child1):
print("The youngest child is " + child3)
my_function(child1 = "Emil", child2 = "Tobias", child3 = "Linus")
5. list, tuple, dictionary을 parameter로 사용하는 function
- function에 집합 자료형을 넘길 때 사용 합니다.
def my_function(food):
for x in food:
print(x)
fruits = ["apple", "banana", "cherry"]
my_function(fruits)
6. 가변 parameter function
- 여러 개의 argument를 한 번에 넘기고 싶을 때 사용합니다.
1) 가변 parameter
- *을 사용하여 가변 parameter를 정의 합니다.
- 여러개의 자료를 받을 수 있습니다.
def my_function(*kids):
print("The youngest child is " + kids[2])
my_function("Emil", "Tobias", "Linus")
2) 일반 parameter + 가변 parameter
- 가변 parameter는 tuple로 전달됩니다.
def my_function(x, *key_words):
print("The youngest child is" , x , key_words)
my_function("Emil", True, "fast", "debug")
3) 일반 parameter + keyword 가변 parameter
- keyword 가변 parameter는 dictionary로 전달됩니다.
def my_function(x, **key_word):
print("The youngest child is" , x , key_word)
my_function("Emil", flag=True, mode='fast', header='debug')
7. parameter에 기본 값을 주어서 사용하는 function
- parameter가 필수로 정의되어야 할 때 사용합니다.
def my_function(country = "Norway"):
print("I am from " + country)
my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")
8. return 값을 반환하는 function
def my_function(x):
return 5 * x
print(my_function(3))
print(my_function(5))
print(my_function(9))
9. 빈 function
- python은 function 정의가 아무것도 안되어 있으면 error가 발생합니다.
그래서 이를 회피하려면 pass를 넣어야 합니다.
def myfunction():
pass
참조사이트
code-convetion
https://peps.python.org/pep-0008/#introduction
'강의 > python3' 카테고리의 다른 글
[python3] 8강. programming 방법론 (0) | 2022.04.29 |
---|---|
[python3] 7강. 중간 정리 (프로그램 구조, 변수, 제어문, 함수) (0) | 2022.04.23 |
[python3] 5강. 집합 관련 자료형 -2 (0) | 2022.04.12 |
[python3] 4강. 변수와 제어문 -1 (0) | 2022.04.07 |
[python3] 3강. 프로그램의 기본 구조 (0) | 2022.04.04 |