티스토리 뷰
01. 함수(Function)
▶ 프로그래밍 시 반복적으로 수행되는 작업을 하나로 묶어서 수행하도록 만든 것
▶ 함수의 형식
→ 입력값을 가지고 어떤 일을 수행한 다음 결과물을 내어 놓는 것
▶함수의 구조
▷def - 함수를 만들 때 사용하는 예약어
▷함수명 - 함수를 만드는 사람이 임의로 만들 수 있음
▷입력 인수 - 이 함수에 입력될 값(필요한 개수 만큼 인자 전달 가능)
▷수행할 문장 - if, while, for 과 같은 함수에서 수행할 문장 입력
▷return - 작업 결과를 돌려 주기 위한 절차
-------예시-------
def sum(a, b):
return a + b
--> 이 함수의 이름은(함수명)은 sum 이고
입력 인수로 2개의 값 받음
결과 값은 2개의 입력값을 더한 값임
▶함수는 return 값이 하나 뿐
------실습
def HelloWorld() :
print("Hello World")
print("Run")
HelloWorld() ---함수를 부르기 전까지는 함수가 실행되지 않음
print("end")
RESTART: C:/Users/Administrator/AppData/Local/Programs/Python/Python36/test123.py
Run
Hello World - 함수 호출
end
>>>
*수행과정
print("Run")수행후
-->HelloWorld()-함수호출 -->함수수행--> 리턴함수값
-->print("end")다시 수행
-------
▶함수를 만들어 놓았기 때문에 동일한 값을 계속 호출할 수 있음
01. 함수의 입력값
▶ 함수에 사용할 데이터를 전달하기 위하여 입력값을 설정할 수 있음
def test_function(arg0, arg1):
print("arg0:", arg0)
print("arg1:", arg1)
print("arg0 + arg1 = ", arg0 + arg1
★예제
- 입력받은 숫자에 대한 구구단을 표시하시오
☆예제풀이
def print_9x9(arg0):
for i in range(1,10) : --반복문으로 사용
print(arg0 , "x" , i , "=" ,arg0 * i)
print_9x9(2)
RESTART: C:/Users/Administrator/AppData/Local/Programs/Python/Python36/test123.py
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
>>>
02. 불특정 입력 값
▶ 함수 입력의 개수가 상황에 따라 변경될 경우, 가변적으로 입력 값을 조정 할수 있음
▶ 입력값이 몇개인지 특정할 수 없는 경우
▶ 입력값 위에 * 작성
def multi_Input(*args):
▶ 입력 갯수에 따라서 입력 값의 개수를 조절 할 수 있는 방법
------실습
def multi_input(*arg) :
sum=0
for i in arg :
sum =sum +i
print("SUM:",sum)
multi_input(2,3,5,6)
multi_input(3,4)
multi_input(5,4,7,8,1,2,3)
>>>
RESTART: C:/Users/Administrator/AppData/Local/Programs/Python/Python36/test123.py
SUM: 16
SUM: 7
SUM: 30
>>>
※ 함수명은 문자로 시작하거나 언더바로 시작해야함
숫자로 시작하면 실행되지 않음
---- 입력 인수가 2개 일 경우
def multi_input(fun,*arg) : - fun에 arg를 넣는것
if fun == '0' :
sum = 0
for i in arg:
sum = sum + i
print("sum :", sum)
elif fun == 'm' :
sum =0
for i in arg :
sum = sum+i
print("mul :", sum)
else :
print("print:",arg)
multi_input('a',2,3,5,6)
multi_input('m',3,4)
multi_input('d',5,4,7,8,1,2,3)
RESTART: C:/Users/Administrator/AppData/Local/Programs/Python/Python36/test123.py
print: (2, 3, 5, 6)
mul : 7
print: (5, 4, 7, 8, 1, 2, 3)
>>>
※ 함수 쉽게 만드는 단계별 연습
① 함수를정의해서 만듦
def printstars(*arg) :
for i in arg :
print("*")
printstars(1,23)
>>>
RESTART: C:/Users/Administrator/AppData/Local/Programs/Python/Python36/test123.py
*
*
>>>
② 입력값이 잘들어가는지 확인
def printstars(*arg) :
for i in arg :
print(i)
printstars(1,23)
>>>
RESTART: C:/Users/Administrator/AppData/Local/Programs/Python/Python36/test123.py >>>
1
23
>>>
③ 입력값을 출력할 수 있는지 확인
④ 하나씩 처리해서 차근차근 연습함
-------
def printstars(*arg) :
for i in arg :
print(i , ":" , "*"*i)
printstars(1,2,3)
RESTART: C:/Users/Administrator/AppData/Local/Programs/Python/Python36/test123.py
1 : *
2 : **
3 : ***
>>>
★불특정 입력값 연습 예제
☆ 에제 풀이
def printStars(*arg) :
for i in arg :
print(i, ":", "*"*i)
printStars(5,2,4,7,3,4,3)
print("")
printStars(10,1,3,0,6)
===== RESTART: C:/Users/해니/AppData/Local/Programs/Python/Python36/tet.py =====
5 : *****
2 : **
4 : ****
7 : *******
3 : ***
4 : ****
3 : ***
10 : **********
1 : *
3 : ***
0 :
6 : ******
>>>
▶출력 값은 언제나 하나만 출력 할수 있음
(단, 튜플 자료형으로는 다수 출력 값을 포함할 수 있음)
----튜플이 두개의 출력값을 가질수 있는 예시
def sum_and_mul(a,b):
return a+b,a*b
result = sum_and_mul(2,4)
print(result)
print(type(result))
a,b = sum_and_mul(3,4)
print(a,b)
RESTART: C:/Users/Administrator/AppData/Local/Programs/Python/Python36/test123.py
(6, 8)
<class 'tuple'> -- type이 tuple인것을 알수 있음
7 12
>>>
------출력값 실습
def check_odd(arg0) :
result ="Odd" - 변수 result(변수명)
if arg0%2==0 :
result = "Even"
else :
result = "Odd"
return result - 변수명을 실행
print(check_odd(12)) - result 값이 들어감
>>>
===== RESTART: C:/Users/해니/AppData/Local/Programs/Python/Python36/tet.py =====
Even
>>>
----------실습
def check_odd(arg0) :
a ="odd"
if arg0%2==0 :
a= "Even"
else :
a= "odd"
return a
check_odd(23) --결과값 아무것도 안나옴
print가 없기 때문
↓
def check_odd(arg0) :
a ="odd"
if arg0%2==0 :
a= "Even"
else :
a= "odd"
return a
b=check_odd(23) ---b 라는 값을 설정해서 print(b)를 실행
print(b)
RESTART: C:/Users/Administrator/AppData/Local/Programs/Python/Python36/test123.py
odd
>>> ---결과값 나옴
※ 함수 안에서 쓰는 변수들은 밖으로 끄집어 낼 수 없음
b=check_odd(23)을 a라는 변수로 설정할 수 없음
03. 초기값
▶함수 인자는 각각 초기 값을 설정할 수 있음
----------------실습
def print_chars(c,times=1):
print(c*times)
print_chars("*")
print_chars("-",10)
"""c는 캐릭터 times는 반복"""
>>>
* --기본으로 세팅되어있는 1이 들어가서 초기값이 곱해짐
----------
>>>
------실습
def func(a , b = 5, c = 10): --a는 초기값이 없기떄문에 반드시 넣어주어야함
print("a : ", a, " b: ", b, " c: ", c)
func(2)
func(2,4)
func(3,c=5)
===== RESTART: C:/Users/해니/AppData/Local/Programs/Python/Python36/tet.py =====
a : 2 b: 5 c: 10
a : 2 b: 4 c: 10
a : 3 b: 5 c: 5
>>>
04.변수범위
▶ 함수 내에서 만들어진 변수는 함수 내에서만 의미를 가짐
x = 50 - 전체에서 쓰는 전역변수
def func(x):
print("X = ", x)--이 지역에서만 쓰는 지역변수
(함수안에서만 영향을 미침)
x = 2
print("X = ", x)
func(x)
print("X = ", x) -- 처음 x=50을 사용하므로 50이나옴
===== RESTART: C:/Users/해니/AppData/Local/Programs/Python/Python36/tet.py =====
X= 50
X= 2
X= 50
>>>
※ 이름이 같다고 동일한 변수가 아님
---함수를 밖으로 끄집어 내고 싶을 때
x=30
def func(x) :
print("X=",x)
x=3
print("X=",x)
return x
b=func(x)
print(b)
print("X=",x)
>>>
RESTART: C:/Users/Administrator/AppData/Local/Programs/Python/Python36/test123.py
X= 30
X= 3
3
X= 30
>>>
★함수 예제 연습
* 여러 개의 숫자를 받아서 최대값과 최소값을 반환하는 함수를 만드세요
☆예제 풀이
def minimum(*args):
min =args[0] --입력한 값의 첫번째를 지정해놈
for i in args : -- 저장한 args 값을 i에 넣음(반복)
if i< min :
min=i
return min
def maximum(*args):
max = args[0]
for i in args :
if i>max :
max=i
return max
print("Minimum:", minimum(2,4,3,6,5,7))
print("Maximum:",maximum(4,2,5,7,3,0,5,9))
===== RESTART: C:/Users/해니/AppData/Local/Programs/Python/Python36/tet.py =====
Minimum: 2
Maximum: 9
>>>
'Programing > Python' 카테고리의 다른 글
Python 실습 (0) | 2017.03.25 |
---|---|
Python - 09. 입력/출력 (0) | 2017.03.22 |
Python - 07. 반복문 (0) | 2017.03.21 |
Python - 06. 조건문 (0) | 2017.03.21 |
Python - 05. Dictionary(딕셔너리) . 집합 (0) | 2017.03.20 |