Python - 함수

Python/학교 / / 2020. 10. 6. 16:22
728x90
반응형

함수의 정의

  • 여러 개의 문장들을 하나의 이름으로 묶어서 이름만 호출해서 사용하기 위한 개념
  • 이름만 호출하면 되므로 코드의 중복을 제거
  • 코드의 일정 부분을 별도의 논리적인 개념으로 분리하기 위한 함수로 구분
  • 함수의 종류는 보통 Maker Function(내장 함수) 과 사용자 정의 함수로 구분
  • 파이썬에서는 함수도 하나의 자료형으로 간주
  • 함수의 이름은 함수의 주소가 되고 함수이름()은 함수의 호출(실행)이 된다.
  • 함수도 하나의 데이터이므로 변수에 대입할 수 있고 매개변수로 사용할 수 있다.

 

내장함수

  • 별도의 모듈 추가 없이 사용할 수 있는 기본적으로 제공되는 함수들
  • 내장함수 : https://docs.python.org/3/library/functions.html
  • dir(__builtins__)를 이용해 확인 가능

[그림1] 내장함수 종류

 

max(s)

  • 시퀀스 자료형(문자열, 리스트, 튜플)을 입력받아 그 자료가 지닌 원소 중 최대값을 리턴하는 함수
print(max(10,30,50,100))
print(max([100,300,200]))
print(max('Hello World'))

[그림2] max함수 예제 출력

 

함수

  • 파이썬에서는 함수나 메소드를 정의할 때 definition를 줄인 키워드 def를 사용한다.
  • def 다음에 함수명과 인수들을 나열하고 :를 기술해 몸체를 정의한다.
  • 파이썬은 어떤 형식의 데이터도 인수로 전달할 수 있기 때문에 인수의 자료형은 기술안한다.
  • return은 결과를 돌려주고자 할 때 결과를 함수를 호출한 곳으로 되돌려줄 때 사용한다.

 

파이썬 함수의 구조

# 파이썬 함수의 구조

def 함수명(인수1,인수2,... 인수n):
    수행할 문장1
    수행할 문장2
    
    return 값

 

일반적인 함수

# 일반적인 함수
def sum(a,b):
    result = a+b
    
    return result

a = sum(3,4)
print(a)

[그림3] 일반적인 함수 

 

입력값이 없는 함수

# 입력값이 없는 함수

def say():
    return 'Hi'

a = say()
print(a)

[그림4] 입력값이 없는 함수

 

결과값이 없는 함수

# 결과값이 없는 함수
def sum(a,b):
    print('%d, %d의 합은 %d입니다. '%(a,b,a+b))
    

sum(3,4)

[그림5] 결과값이 없는 함수

 

 

입력값도 결과값도 없는 함수

# 입력값도 결과값도 없는 함수

def say():
    print('Hi')

say()

[그림6] 입력값도 결과값도 없는 함수

 

 

여러 개의 입력 값

# 여러 개의 입력 값

def sum_many(*args):
    sum = 0
    for i in args:
        sum +=i
    return sum


total = sum_many(1,2,3)
print(total)

total = sum_many(1,3,5,7,9)
print("10까지의 홀수의 값 : ",total)

[그림7] 여러 개의 입력 값

 

 

매개 변수에 초기값 미리 설정하기

# 매개 변수에 초기값 미리 설정하기
def say_myself(name, old, man=True):
    print('나의 이름은 %s 입니다.'%name)
    print('나이는 %d 살입니다.'%old)
    if man:
        print('남자 입니다.')
    else:
        print('여자 입니다.')
        
say_myself('홍길동',45)
print()
say_myself('홍길동',45,True)

[그림8] 매개 변수에 초기값 미리 설정하기

함수 매개 변수에 초기값 설정시 주의사항

  • 초기값을 설정한 매개변수의 위치가 중요하다
  • 초기화 시키고 싶은 매개변수는 항상 뒤쪽에 설정한다.

 

 

lambda

  • 함수를 생성할 때 사용하는 예약어
  • 함수를 한 줄로 간겨랗게 만들 때 사용
  • 구조 - lambda 매개변수1, 매개변수2, 매개변수를 사용한 표현식

예제

# lambda

add = lambda a,b: a+b
add(3,4)

[그림9] 함수 lambda 함수 예제

 

 

재귀함수

  • 재귀함수 - 자기 스스로를 호출하는 함수
  • 재귀호출 - 함수가 자기 자신을 다시 호출
# 재귀함수
def some_func(count):
    if count>0:
        some_func(count-1)
    else:
        return
    print(count)
    
some_func(5)

[그림10] 재귀함수 ㅇ제

 

 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기