ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python Variable
    Computer Science/Basic Programming with Python 2021. 11. 18. 05:08

    Parameters

    parameter이란, 아래같은 예제에서 num1, num2와 같은 inputs을 의미한다.

    def add(num1, num2)
      return num1 + num2

    여기서, default값을 지정해줄수도 있다.

    def add(num1 = 1, num2 = 2)
      return num1 + num2

    물론, 위의 코드는 의미없는 코드이지만, 값을 입력하지 않을때, default값을 정해줄수 있다.

    add(4, 5)

    이것은 9를 리턴하고,

    add(7)

    위는 a의 값만 준것으로 인식되어 default값인 b = 2를 사용, 9가 리턴된다.

    add(b = 1)

    위와같이 b의값을 주면, a는 default인 1을 이용, 2를 리턴한다.

     

     

    *

    parameter 갯수가 몇개인지 모를때에는 *를 사용할 수 있다. 형식은 아래와 같다.

    def function(*args):
      code

     

    예를 들어서, 모든 값들을 프린트하는 함수를 만들어보자.

    def print_all(*args)
      for i in args:
        print(i)

    숫자만 넣으면 당연히 숫자를 차례로 프린트하고,

    print_all(1, 2, 3, 4, 5)
    1
    2
    3
    4
    5

    아래와 같이 다양한 타입도 순서에 맞게, paramter 사이즈만큼 모두 프린트해준다.

    print_all("hello", "world", "1", 2, 3, 0.1231, [1,2,3,4], {1,3,2,1,1})
    hello
    world
    1
    2
    3
    0.1231
    [1, 2, 3, 4]
    {1, 2, 3}

    이렇게 * 를 사용하면, args에 들어간 값들이, tuple 형태로 변환되어서 args라는 parameter로 들어가게 된다.

     

    **

    또 제공하는 다른 한가지 방법은 keyword arguments인데, kwargs라고 줄어셔 사용한다. 아래와 같은 포맷으로 사용할 수 있다.

    def function(**kwargs):
      code

    예시를 보자.

    def func(**kwargs):
      for i in args:
        print(i)

    kwargs는 dictionary 형태로 변환이 되어서 parameter에 들어가는데, 반드시 아래와 같은 형태로 parameter값을 주어야한다.

    func(k1=v1, k2=v2)

    다음과 같은 함수를 작성할 수 있다.

    def print_all(**kwargs):
      for i in kwargs:
        print(i)
      print(kwargs)
    print_all(a = 1, b = 2, c = 3)

    각 keyword argument를 돌면서 값을 프린트하고, loop이 빠져나왔을때는 dictionary형태의 input을 전체 프린트하는 함수이다.

    a
    b
    c
    {'a': 1, 'b': 2, 'c': 3}

    잘 출력되는것을 볼 수 있다.

     

     

    Parameter and Memory

    그렇다면 parameter에 전달된 값은 메모리에 어떻게 전달되는것일까? 아래 function을 보자.

    a = 3
    def print_arg():
      a = 2
      print(a)
    print(a)

    이런 코드가 있다면 어떤것이 출력될까?

    3

    바로 3이 출력된다. print_args() function이 호출되지 않았기때문이다. 하지만 호출을 한다면,

    print_arg()
    2

    위와같이 2가 출력 되고, 다시 print(a)를 해보면?

    print(a)
    3

    다시 3이 출력된다. 왜 이런일이 일어날까?

     

    print_arg() function 안에서 만든 variable을 local variable이라고 부른다. 이 값은 함수가 실행되면 생성되고, 종료되면 함께 사라진다. 반대로 3이 저장된 a는 global variable이라고 부르는데, 이 값은 프로그램이 실행되어있는 동안 내내 살아있다. 

     

    그렇다면, 함수 내에서 global로 지정된 값을 사용하고 그 값을 변경하려면?

    a = 3
    print(a)
    
    def update_global():
      global a
      a = a + 1
      
    add_global_and_local()
    print(a)

    위와같이 global을 이용해주면 된다. 값을 확인해주면,

    3
    4
    4

     

     

    Function Name

    보통 Python코드를 작성할 때, 가독성을 높이는 방법으로 다른 사람이 보았을때도 이해할 수 있도록 아래와같이 글자는 모두 소문자로, 그리고 여러 단어일 경우 _ 를 사용해서 나누어준다. 그리고 적당한 띄어쓰기로 가독성을 높여주어서 좋은코드를 만들 수 있다.

    def additional_function(a, b):
      return a + b

     

    'Computer Science > Basic Programming with Python' 카테고리의 다른 글

    Nested Function  (0) 2021.11.19
    Recursive Function  (0) 2021.11.19
    Python Function  (0) 2021.11.14
    Python While  (0) 2021.11.13
    Python for loop  (0) 2021.11.13

    댓글

Designed by Tistory.