[Python] 5. 함수

[Python] 5. 함수

1. function (함수) 이해하기

1) function (함수)

  • 함수를 쉽게 생각하면, 기능에 이름을 붙여 사용하는 것.
  • 파이썬의 내장함수
    • print( ) : 문자열로 출력
    • input( ) : 입력을 문자열로 변환
  • 함수 정의하기 (define)
    • def 함수이름():
          수행할 코드
      
  • 함수 정의
  • 함수 호출
# 함수 정의
def menu():
    print("오늘의 메뉴")
    print("오늘 점심메뉴는 닭가슴살 입니다.")
    print("내일의 메뉴")
    print("내일 점심 메뉴는 소고기 입니다.")

# 함수 호출
menu()

# result
오늘의 메뉴
오늘 점심메뉴는 닭가슴살 입니다.
내일의 메뉴
내일 점심 메뉴는 소고기 입니다.
  • 매개변수(parameter)
  • 인자(argument)
# 매개변수(parameter)
def add(text1, text2):
    # ''' 독스트링 ''' 을 통해 함수에대한 설명을 해주자.
    ''' 문자열 두개(성, 이름)을 입력받아서 합쳐서 출력하는 함수
    args
        text1: 성을 받는 문자열
        text2: 이름을 받는 문자열'''
    
    print(text1 + text2)

# 인자(argument)를 넣어 실행
add("홍", "길동")

# result
홍길동
  • return
# return

def add(text1, text2):
     # ''' 독스트링 ''' 을 통해 함수에대한 설명을 해주자.
    ''' 문자열 두개(성, 이름)을 입력받아서 합쳐서 출력하는 함수
    args
        text1: 성을 받는 문자열
        text2: 이름을 받는 문자열'''
   
    text = text1 + text2
    return text

print(add("홍", "길동"))

# result
홍길동
  • 끝말잇기 만들기
# 실습
# 끝말잇기 함수 만들기

def game(text):
    while True:
        print(text)
        keyword = input("성공! 다음 끝말을 이어주세요 : ")
        if text[-1] == keyword[0]:
            text = keyword
        else:
            print("끝말잇기 실패! 게임을 종료합니다.")
            break
game("운동")

# 운동 으로 시작!

2. 지역변수, 전역변수, 매개변수 이해하기

1) 지역변수 (Local Variable)와 전역변수 (Global Variable)

  • 지역변수 (Local Variable)
    • 함수 안에 선언된 지역변수
# 지역변수 (Local Variable) 
def jeju_potato():
    potato = "고구마" # 함수 안에 선언된 지역변수
    print(potato)

jeju_potato()
  • 전역변수 (Global Variable)
    • 전역에서 모두 사용 가능한 변수
# 전역변수 (Global Variable)

potato = "감자"     # 전역에서 모두 사용 가능한 변수 

def jeju_potato():
    print(potato)

jeju_potato()
print(potato)

# result
감자
감자
# 전역변수 (Global Variable)

potato = "감자"     

def jeju_potato():
    global potato       # 전역변수 potato를 의미
    print(potato)
    potato = "고구마"    # 지역변수 potato를 전역변수로 사용
    print(potato)

jeju_potato()

# result
감자
고구마

2) 가변 매개변수

  • 가변 매개변수
  • “*” 을 통해 가변 매개변수 사용
# 가변 매개변수
# * 을 통해 가변 매개변수 사용

def add(*args):
    sum = 0
    for i in args:
        sum += 1
    print(sum)

add(10, 20, 30, 40)
  • 키워드 매개변수
    • 키워드 = 특정값 형태 {“키워드”:”특정값”}
    • “**” 두개 사용
# 키워드 매개변수
# 키워드 = 특정값 형태 {"키워드":"특정값"}
# ** 두개 사용

def func_a(name, *args, address = "한국", **kwargs):
    print(name, args, address, kwargs)

func_a("Kevv", "요즘", "사람", adress = "한국", 직업 = "개발자")

# result
Kevv ('요즘', '사람') 한국 {'adress': '한국', '직업': '개발자'}
  • 실습
# 최대, 최소값 구하기

def max_min_search(*number):
    max_num = number[0]
    min_num = number[0]
    for num in number:
        if num > max_num:
            max_num = num
        elif num < min_num:
            min_num = num
    return max_num, min_num

print(max_min_search(15, 30, 4, 60, 7, 80, 32))

# result
(80, 4)
# 실습
# 최대, 최소값 구하기
# 방법 2 - 내장함수를 이용

def max_min_search(*number):
    return max(number), min(number)

print(max_min_search(15, 30, 4, 60, 7, 80, 32))

# result
(80, 4)
  • 내장함수 확인방법

    Python 공식홈페이지 > documentation > Python Docs > Library Reference > Built-in Functions