■ 함수

=> 특정 기능을 구현하기 위한 코드의 묶음

=> 크고 복잡한 프로그램을 해결하기 쉬운 작은 단위로 쪼개어 해결
=> 반복되는 코드를 함수화하여 코드의 중복을 배제한다

=> 크고 복잡한 문제를 쉽게 해결할 수 있다
=> 코드의 가독성을 높여 프로그램의 흐름파악이 용이하다
=> 자주 사용되는 코드를 하나의 함수로 만들어 프로그램 내에서 재사용가능
=> 프로그램의 디버깅이 용이

*디버깅 : 프로그래밍에서 잘못된 부분을 고치는 작업

 

  • 내장함수 : 파이썬프로그램에 기본적으로 내장된 함수
  • 외장함수 : 모듈/패키지 함수 (import하여 사용)
  • 사용자 정의 함수 : 사용자가 직접 만든 함수 

EX) 함수 정의하기(만들기)

def 함수명():

       함수내용

함수 호출하기 --> 호출하기 전에 함수가 정의되어 있어야 한다.

# 함수정의
def introduce():
    print('안녕하세요!')
    print('저의 이름은 파이썬입니다.')
    
# 함수 호출
introduce()

안녕하세요!
저의 이름은 파이썬입니다.

 

■ 매개변수 전달하기

def 함수명(매개변수1,매개변수2,매개변수3, ... ):

# 매개변수 1개 전달하기
def introduce(a):
    print('안녕하세요!')
    print('저의 이름은 ' + a + '입니다.')
    
# 함수호출
introduce('파이썬')

안녕하세요!
저의 이름은 파이썬입니다.

 

# 매개변수 여러개 전달하기
def introduce2(name,age,h):
    print('안녕하세요!')
    print('저의 이름은 '+name+'입니다')
    print('저의 나이는 '+str(age)+'살입니다')  # 매개변수를 넘길 때 숫자라면, 문자열화 해줘야한다.
    print('저의 키는 '+str(h)+'입니다')
introduce3('KSM',32,178.8)

안녕하세요!
저의 이름은 KSM입니다
저의 나이는 32살입니다
저의 키는 178.8입니다

 

def introduce3(name,age,h):
    print('안녕하세요!')
    print('저의 이름은 '+name+'입니다')
    print('저의 나이는 '+age+'살입니다')
    print('저의 키는 '+h+'입니다')
introduce3('KSM','32','178.8')

안녕하세요!
저의 이름은 KSM입니다
저의 나이는 32살입니다
저의 키는 178.8입니다

 

def introduce4(name,age,h):
    print('안녕하세요!')
    print(f'저의 이름은 {name}입니다')  # format형으로 하면 더 간단하다
    print(f'저의 나이는 {age}살입니다')
    print(f'저의 키는 {h}입니다')
introduce4('KSM',32,178.8)

안녕하세요!
저의 이름은 KSM입니다
저의 나이는 32살입니다
저의 키는 178.8입니다

 

 

※ 연습문제

  • 이름과 나이를 입력받아 생일축하 메시지를 출력하는 함수를 만들고 호출
  • 출력 => 생일문구 : 000님의 00번째 생일을 축하합니다!!
name = input('이름 :')
age = input('나이 :')

def happybirthday(name,age):
    print(f'{name}님의 {age}번째 생일을 축하합니다.')
    
happybirthday(name,age)

이름 :KSM
나이 :32
KSM님의 32번째 생일을 축하합니다.

 

 

■ 코드를 모아만드는 함수

def 함수명(매개변수1,매개변수2, ... )
     함수내용
     return 결과값

반환값은 없거나 1개이다.

반환값이 여러개인 경우 하나의 '튜플'로 묶어서 반환한다.

def get_plus(n1,n2):
    return n1+n2
    
a = get_plus(1,2)

print(a)
print(get_plus(2,3))

3

5

 

# 값 여러개 반환하기
def get_plus_minus(n1,n2):
    return n1+n2, n1-n2
print(get_plus_minus(1,2))

# 반환값이 여러개일 경우, 튜플형식으로 반환하기 때문에 인덱스를 사용해 반환값을 가져온다
a1 = get_plus_minus(1,2)[0]
a2 = get_plus_minus(1,2)[1]
print(a1,a2)

plus,minus = get_plus_minus(1,2)
print(plus,minus)

(3, -1)
3 -1
3 -1

 

 

■ 함수에서 빠져나오기

# 'return'을 만나면 함수를 빠져나온다.
# 반환할 값이 있다면 값을 반환하고 빠져나오고, 없다면 그냥 빠져나온다.
def is_odd_even(n):
    if n == 0:
        result = 0
    elif n % 2 == 0:
        result = '짝수'
    else:
        result = '홀수'
    return result
    
is_odd_even(2)

'짝수'

 

def is_odd_even(n):
    if n == 0:
        return 0
    if n % 2 == 0:
        return '짝수'
    return '홀수'
    
is_odd_even(23)

'홀수'

 

 

※ 연습문제

  • 소수 여부 판단하기. 매개변수로 전달받은 수가 소수인지 아닌지 판별하는 함수를 작성하고 호출하라
    소수 : 1과 자기 자신으로만 나누어 떨어지는 1보다 큰 양의 정수
def is_prime(n):
    if n <= 1:
        return False
    
    for i in range(2,n):
        if n % i == 0:
            return False
        
    return True
    
is_prime(2)

True

'Python 기초 공부' 카테고리의 다른 글

람다표현식 / map함수  (0) 2023.02.24
인수 전달 / 변수 사용  (0) 2023.02.24
딕셔너리(Dictionary) 활용해보기  (0) 2023.02.20
딕셔너리(Dictionary)  (0) 2023.02.20
리스트의 활용과 연습  (0) 2023.02.19

+ Recent posts