티스토리 뷰

Programing/Python

Python - 08. 함수

HNNN 2017. 3. 22. 01:19


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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함