[파이썬] 파이썬에서 함수란? (심층)


파이썬에서 함수가 무엇인지에 대한 정의를 내리고 싶어서 자기전에 쭉 적어본다.
또한 다음 블로그에서는 객체에 대한 심층적인 공부가 필요할 것 같다. 일단은 함수에 대해 궁금한 점이 많아 적어본다.

참고사이트:점프투파이썬


  • 함수란 무엇인가?
    과일(입력) -> 믹서(함수) -> 쥬스(출력), 간단하다.
  • 함수를 사용하는 이유
    똑같은 내용을 반복할때 필요
  • 매개변수와 인수
    매개변수(parameter)와 인수(arguments)는 헷갈림,
    매개변수는 함수에 입력으로 전달된 값을 받는 변수 / 인수는 함수를 호출할 때 전달하는 입력값
def add(a, b):  # a, b는 매개변수
    return a+b

print(add(3, 4))  # 3, 4는 인수
  • 일반적인 함수
    내가 아는 함수들
  • 입력값이 없는 함수 ```python def say() : return ‘Hi’

a = say() print(a)

```python
Hi

: 입력값이 없지만 결과가 나오는 경우

  • 결과값이 없는 함수
    그냥 프린트만 뽑아낼경우
  • 함수의 결과값은 언제나 하나다. (예시1)
    def add_and_mul(a,b): 
      return a+b, a*b
    

    : 이 경우에는 (a+b, a*b) 라는 튜플값이 나온다.

(예시2)

def add_and_mul(a,b): 
    return a+b 
    return a*b 

: 이 경우에는 첫 결과물만 나온다. return문을 만나면 바로 빠져나간다.

  • return 단독 쓰일 때 (맨날 내가 코딩테스트 볼때 헷갈렸던거!!)
    def say_nick(nick): 
      if nick == "바보": 
          return 
      print("나의 별명은 %s 입니다." % nick)
    

    : 바보라고 하면 바로 return만나서 나가게 된다. 자주쓰임.

  • 매개변수에 초깃값 미리 설정
    def say_myself(name, old, man=True): 
    

    : 그냥 이렇게 지정할 수 있고 False로 넣으면 바뀐다.(지정안하면 True로 간다)

  • 함수 안에서 선언한 변수의 효력 범위
    당연한 거라 적지 않겠음
  • 함수 안에서 함수 밖의 변수를 변경하는 방법

(1) return 사용하기

a = 1 
def vartest(a): 
    a = a +1 
    return a

a = vartest(a) 
print(a)

: 잘은 이해 안되지만, return 결과값이 a(=1)로 바뀌어서 돌아가는 구조인듯

(2) global 명령어 사용
비추천
  • lambda
    def가 간단할 때 쓴다.
    >>> add = lambda a, b: a+b
    >>> result = add(3, 4)
    >>> print(result)
    7
    

    위에와 아래가 같다.

    >>> def add(a, b):
    ...     return a+b
    ...
    >>> result = add(3, 4)
    >>> print(result)
    7
    

    특히 labmda는 return명령어가 없어도 결괏값을 돌려준다.






© 2018. by statssy

Powered by statssy