티스토리 뷰

1. 함수 : def 과 return, 변수

함수부분이 이해하기가 좀 까다로웠다.

 

책에 있는 방법이 이해가 잘 되지 않아 내가 이해하게 된 방법으로 정리 해보겠다.

 

 

함수를 정의하기 위해서는 먼저 def을 기술해야 한다.

 

함수의 이름은 임의대로 정해줄 수 있으며, 변수가 필요한 경우 이름과 함께 def 뒤에 작성해야 한다. 

 

그리고 그 다음 줄 부터 함수에 대해서 설명하는 부분인덴트(들여쓰기)해서 작성해야 한다.

 

def 함수이름(변수1, 변수2, ...):

    함수에 대해서 설명하는 부분

 

그리고 return이라는 구문이 있는데 많이 헷갈린 부분이었다.

 

return 결과값을 반환(도출)한다. [return 결과값]과 같이 작성하게 될 경우 [함수( )=결과값]으로 반환해 놓는다. 사실 나는 '반환'이라는 단어가 잘 와 닿지 않아 결과값으로 '설정' 정도로 이해했다.

 

② 일반적으로 설명을 작성할 때 인덴트를 한 부분은 함수에 들어가게 되는데, return을 작성하게 될 경우, 그 밑으로 인덴트의 유무와는 상관없이 함수는 끝나버리고 결과값이 반환된다.

 

def JFun( ):

    print("hi")    #함수 내에 들어간다.

    return 'c'    #결과값이 c가 되며, 함수는 여기서 마친다.

    print("bye")   #함수 내에 들어가지 않는다.

 

print(JFun())

 

hi
c

>>>

 

위와 같이 쓰면 JFun()=c 와 같은 함수가 만들어 졌다고 보면 된다.

 

 

 

2.리턴과 변수에 따른 함수의 유형

 

-변수(o) return(X)

 

def JFun(a, b):    # 함수의 이름은 JFun 변수는 a와 b이다.
    print(a+b)    # 함수에 a, b를 대입하면 a+b의 합을 출력한다.


JFun(1, 2)    # a=1, b=2를 대입한 함수값을 호출한다.

 

3

>>>

 

-변수(X) return(X)

 

def JFun( ):    # 함수의 이름은 JFun 변수는 없다.
    print('handsome')    #함수를 입력하면 handsome을 출력한다.


JFun( )    # 함수 JFun을 입력하여 함수값을 호출한다.

 

handsome

>>>

 

-변수(o) return(o) 

 

def JFun(a, b):    # 함수의 이름은 JFun 변수는 a와 b이다.

    return a+b    # 함수의 결과값은 a+b로 한다.

print(JFun(1,2))    # a=1, b=2를 대입한 함수값을 출력한다.

 

3

>>>

 

-변수(X) return(o)

 

def JFun( ):    # 함수의 이름은 JFun 변수는 없다.

    return 'hansome'    # 함수의 결과값은 handsome로 한다.

 

print(JFun())    # 함수값을 출력한다.

 

3

>>>

 

 

 

 

중요한 점은 return이 있으나 없으나 비슷해 보이지만, return이 없고 print를 함수내에 넣은 경우는 정의된 함수 내에서 출력이 이뤄지고 있다.

 

def JFun(a, b):   
    print(a+b)   


JFun(1, 2)   

 

3

----------------------인터랙티브 모드 이용----------------------------

>>>c = JFun(1, 2)

>>>print(c)

None

JFun(1, 2) = 3에서 나온 3이라는 값은 결과값이 아닌 출력이다. 값이 아니기 때문에 여기서 나온 값을 다시 출력해보면 None이라는 거짓을 나타내는 문자가 나오게 된다.

 

 

하지만 return이 있는경우는 JFun이라는 함수를 정의를 해놓고, 출력하기 위해서는 print라는 함수 밖의 과정을 통해서 따로 출력을 했다.

 

def JFun(a, b):   

    return a+b   

 

print(JFun(1,2))   

 

3

----------------------인터랙티브 모드 이용----------------------------

>>>print(8 * JFun(1, 2))

24

>>>print("handsome" + str ( 8 * JFun(1, 2) ) )

hansome24

여기서 3도 출력 되어서 나온게 아니냐 물을 수 있는데, 여기선 JFun(1, 2)라는 함수의 결과값이 3으로 나왔고 그것을 출력했더니 3으로 표시가 된 것이다. 

 

JFun(a, b)라는 함수는 a+b라는 결과값을 가지고 있고 이것을 이용하여 위와 같이 다른 출력이나 함수에도 이용할 수 있다. 

 

 

 

3. 변수의 적용 범위

함수 밖에 쓴 변수는 전체에 적용되는 변수이고, 함수 안에 쓴 변수는 함수에만 적용되는 변수이다.

 

그러므로 함수 밖에 변수값을 설정하고 함수 안에는 설정하지 않으면 밖에있는 변수값을 가져온다.

 

a ='abc'

 

def JFun():
    print(a)

 

JFun()
print(a)

a ='abc'    # 전체에 적용되는 변수

 

def JFun():
    a= "def"    #함수에만 적용되는 변수
    print(a)

 

JFun()
print(a)

 

 

abc

abc

>>>

abc

def

>>>

 

함수 안에서 global을 이용하여 전체 범위에 적용되는 a의 설정 값이 바뀐다.

 

a ='abc'    # 전체에 적용되는 변수

 

print(a) 

 

def JFun():
    global a

    a= "def"    #전체에 적용되는 변수
    print(a)

 

JFun()
print(a)

 

abc

def

def

>>>

 

 

'beginner > 파이썬 기초' 카테고리의 다른 글

2019.01.30  (0) 2019.01.30
13. 기능을 확장하는 모듈  (0) 2019.01.11
11. 조건 분기한다 / if구문  (0) 2019.01.09
10. 반복 실행해보자② while구문  (0) 2019.01.09
9. 반복 실행해보자① for구문  (0) 2019.01.09
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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
글 보관함