함수(function)의 필요성
프로그램 코드를 작성하는 과정에서 특정 기능을 수행하는 코드 부분을 여러 곳에서 자주 사용하는 경우가 있음
특정 기능의 코드 부분을 한데 묶어 이름을 붙여 둔 후,
필요한 곳에서 이름만을 사용하여 특정 기능의 코드 부분을 사용할 수 있음
함수(function)
입력값은 달라도 함수 내부에서 하는 일은 고정적이다. (코드가 반복된다.)
큰 프로그램의 작은 프로그램 조각(모듈)과 같음
함수는 입력을 받아 함수 내부에서 계산 등의 처리를 한 후 결과를 함수 밖으로 반환함
함수의 구분
내장함수(built-in function)
파이썬에서 미리 만들어져 제공되는 input(), print() 함수 등
사용자 정의 함수(user-defined function)
사용자가 직접 만들어 사용하는 함수
사용자 정의 함수
def 예약어를 이용하여 정의
매개변수(parameter)가 사용되지 않고
함수 결과를 반환하지 않는
사용자 정의 함수의 기본 형태
사용자 정의 함수 예제
"Python" 문자열과 "파이썬" 문자열을 각각 출력하는 fpython() 함수의 정의
함수이름은 함수를 호출할 때 사용
들여 쓰기에 의해 함수의 시작과 끝 정의
def fpython() :
print("Python")
print("파이썬")
들여 쓰기가 된 첫 번째 print() 함수부터 같은 들여 쓰기가 된 두 번째 print() 함수까지 함수의 몸체 구성
실행결과
fpython() 처럼 함수의 이름과 전달 값 '()' (전달 값이 필요 없어 비어있다.)를 입력해주니
함수 내부 코드 print들이 정상적으로 실행된다.
주의할 점
함수에 값 전달하기
인수(argument)
함수를 호출할 때 함수로 전달되는 값
매개변수(parameter)
함수에서 전달된 값을 받는 변수
인수와 매개변수는 함수를 호출할 때 데이터를 주고받기 위하여 필요
함수에 값 전달하기 예제
fadd() 함수
두 정수 값을 전달 받아 더한 후 값을 출력하는 사용자 정의 함수
fadd(a, b)로 함수를 호출하여 실행
def fadd(n, m):
s=n+m
print(n,"+",m ,"=",s)
실행결과
간단한 계산기 예제
def fadd(n, m):
s=n+m
print(n,"+",m ,"=",s)
def fminus(n, m):
s=n-m
print(n, "-",m,"=",s)
def fdouble(n, m):
s=n*m
print(n, "*", m, "=", s)
def fdiv(n, m):
s=n/m
print(n, "/", m, "=", s)
def ddd(x, c, y):
if c=='+':
fadd(x,y)
elif c=='-':
fminus(x,y)
elif c=='*':
fdouble(x, y)
elif c=='/':
fdiv(x,y)
else: print('오류')
실행결과
함수의 결과 반환받기
return 예약어
함수 밖으로 함수의 결과 값을 반환
def fadd(n, m) :
s= n+m
print(n,'+',m,'=',s)
return s
똑같은 fadd 사용자정의 함수지만 더한 값 s를 반환해준다. (return)
실행결과
s 에 return 값도 대입하며 함수 실행하여 print도 실행됨
이렇게 반환 값까지 활용하여 함수에 대해 공부해보았다.
간단한 프로그램을 작성해보고 답을 확인해보며 공부를 마치기 바란다.
# 변수를 전달받아 짝수면 0, 홀수면 1을 반환하는 pnz() 함수
# 그리고 pnz() 함수 처리 후 결과 값이 0이면 "짝수", 1이면 "홀수" 출력
# 변수를 전달받아 짝수면 0, 홀수면 1을 반환하는 pnz()함수
# 그리고 pnz() 함수 처리 후 결과 값이 0이면 "짝수", 1이면 "홀수" 출력
def pnz(x):
if x%2 == 0:
return 0
else: return 1
x = pnz(1)
if x == 0:
print("짝수")
elif x == 1:
print("홀수")
else: print("오류")
실행결과
'파이썬(Python)' 카테고리의 다른 글
[Python] COS Pro 5차 2급 파이썬 기출문제 (사다리게임) (0) | 2022.11.24 |
---|---|
[파이썬] 함수와 리스트 (List comprehension 사용방법) (0) | 2022.10.25 |
[파이썬] 구구단 프로그램 예제 (1) | 2022.10.05 |
[파이썬] 반복문 for, while, list, range() (1) | 2022.10.05 |
[파이썬] 관계, 논리 연산자, 조건 제어문 (if, elif, else) (0) | 2022.09.27 |