You are on page 1of 11

2학기

정 보
( 파이썬 21 )
2학기 정 보

1. 함수란?
▶ 작업을 추상화함으로서 모듈화된 단위로 작업 처리 가능
: 어떤 특정 작업을 수행하거나, 일련의 작업들을 묶어서 새로운
단위 작업으로 정의
➔ 즉. 특정 작업을 수행하는 코드의 집합

- 복잡하고 큰 프로그램을 작은 단위의 여러 부분 프로그램으로 분리


- 기능 중심으로 단순하고 이해하기 쉽게 표현
- 중복되는 부분을 함수로 만들어 재사용함
➔ 프로그램의 크기를 줄일 수 있고, 수정 용이

2
2학기 정 보

1. 함수란?
▶ 사용(호출)되기 전 내용이 미리 정의되어야 함
➔ "정의 후 재 사용"

▶ 함수가 호출되면 그 함수로 이동해서 작업 실행 후


➔ 이전 상태(호출한 곳)로 복귀(return)

매개변수 입력

- def 키워드로 함수 정의
- 반환값에 대한 형식 지정 없음

반환(결괏)값

3
2학기 정 보

2. 함수의 4가지 유형
➔ 매개변수와 반환값 유무에 따라
함수 정의 함수 호출
def 함수이름() :
유형1 함수이름()
명령문
def 함수이름() :
유형2 명령문 변수 = 함수이름()
return 반환값
def 함수이름(매개변수) :
유형3 함수이름(매개변수)
명령문
def 함수이름(매개변수) :
유형4 명령문 변수 = 함수이름(매개변수)
return 반환값

4
2학기 정 보

2. 함수의 4가지 유형
가. 매개변수(X), 반환값(X)
함수 정의 함수 호출
def 함수이름() :
함수이름()
명령문

def f() : def f() :


print("창원과학고") print("창원과학고")
print("파이팅!") print("파이팅!")

f() # 드디어 함수 내용 실행
함수 정의만… 실행 결과는?
f()

5
2학기 정 보

2. 함수의 4가지 유형
나. 매개변수(X), 반환값(O)
함수 정의 함수 호출
def 함수이름() :
명령문 변수 = 함수이름()
return 반환값

def odd_even() : def odd_even() :


n = int(input()) n = int(input())
if n % 2 == 0 : if n % 2 == 0 :
return("%d는 짝수입니다" % n) return("%d는 짝수입니다" % n)
else : else :
return("%d는 홀수입니다" % n) return("%d는 홀수입니다" % n)

result = odd_even() print(odd_even())


print(result)

6
2학기 정 보

2. 함수의 3가지 유형
다. 매개변수(O), 반환값(X)
함수 정의 함수 호출
def 함수이름(매개변수) :
유형3 함수이름(매개변수)
명령문

def f(a, b) :
if a > b:
print(a) 형식 매개변수
else: vs
print(b) 실 매개변수

f(5, 7)

7
2학기 정 보

2. 함수의 3가지 유형
라. 매개변수(O), 반환값(O)
함수 정의 함수 호출
def 함수이름(매개변수) :
유형4 명령문 변수 = 함수이름(매개변수)
return 반환값

def f(a, b) :
if a > b : def f(a, b) :
return a - b return a-b if a > b else b-a
else :
return b - a print(f(5, 7))

print(f(5, 7))

8
2학기 정 보

3. 함수와 변수
1) 함수 내에서 변수 값 변경 없이 참조만 할 경우
① 함수 내에서 선언된 변수일 때 ② 함수 내에서 선언되지 않은 변수
지역변수를 참조 일 때 전역변수를 참조

a = 100
a = 100
def f() :
def f() :
a = 50
print("in:", a)
print("in:", a)
f()
f()
print("out:", a)
print("out:", a)

in: 50 in: 100


out: 100 out: 100

9
2학기 정 보

3. 함수와 변수
2) 함수 내에서 전역변수와 같은 이름의 변수 값이 변경되면
➔ 함수 내에 있는 해당 변수(전역변수와 같은 이름의)는 지역변수가 됨
➔ 함수 내에서 전역변수 값을 변경하려면 global 명령어 사용
함수 내에서 선언된 변수 함수 내 선언되지 않은 변수 global 명령어로 전역변수 변경
a = 100 a = 100
a = 100
def f(a) : def f() :
def f() :
print("in-1:", a) global a
a + = 10
a + = 10 a + = 10
print("in:", a)
print(“in-2:", a) print("in:", a)
f()
f(30) f()
print("out:", a)
print("out:", a) print("out:", a)

in-1: 30
# 함수 내에서 참조할 지역 in: 110
in-2: 40
변수 a 가 없어서 오류 발생 out: 110
out: 100

10
2학기 정 보

▶수업명: 정보 21차시 (함수)

◈ 코드업 문제해결 ◈
– 함수 –
1567, 1568, 1564, 1558, 1620

(1564) : 파이썬에서 제공하는 최대공약수함수(gcd)


사용 x ➔ gcd 함수 알고리즘 직접 구현
(1558) : 문자열 x ➔ 정수로 입력 받고 정수로 반환

11

You might also like