강의/python3

[python3] 6강. function(함수)

jinkwon.kim 2022. 4. 13. 21:05
728x90
반응형

목표

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

 

PEP 8 – Style Guide for Python Code | peps.python.org

PEP 8 – Style Guide for Python Code PEP 8 Title Style Guide for Python Code Author Guido van Rossum , Barry Warsaw , Nick Coghlan Status Active Type Process Created 05-Jul-2001 Post-History 05-Jul-2001, 01-Aug-2013 Contents This document gives coding con

peps.python.org

 

728x90
반응형