■ 함수
=> 특정 기능을 구현하기 위한 코드의 묶음
=> 크고 복잡한 프로그램을 해결하기 쉬운 작은 단위로 쪼개어 해결
=> 반복되는 코드를 함수화하여 코드의 중복을 배제한다
=> 크고 복잡한 문제를 쉽게 해결할 수 있다
=> 코드의 가독성을 높여 프로그램의 흐름파악이 용이하다
=> 자주 사용되는 코드를 하나의 함수로 만들어 프로그램 내에서 재사용가능
=> 프로그램의 디버깅이 용이
*디버깅 : 프로그래밍에서 잘못된 부분을 고치는 작업
- 내장함수 : 파이썬프로그램에 기본적으로 내장된 함수
- 외장함수 : 모듈/패키지 함수 (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 |