본문 바로가기

Programming/Python Tutorials

[PYTHON 3] Tutorials 16. a Flexible number of Arguments

안녕하세요. 이번 시간에는 Arguments 개수가 몇개인지 모를 때, 임의의 개수를 지정하게 하는 부분을 다루도록 하겠습니다. 자 그럼 시작하겠습니다.


지금까지 다룬 함수에서 arguments의 개수는 지정되어 있었습니다. 이는 호출할 때도 마찬가지였습니다. 여러개의 수를 더하는 함수를 만든다고 할 경우에 위의 그림처럼 2개의 숫자를 더하게 할 수 있습니다. 그러나 달랑 2개의 숫자를 더하기 위해 함수를 정의하고 사용하는게 너무 비효율적이라고 생각하지는 않나요? 그리고 우리가 몇개를 더할지 모를 경우도 많을테죠. 계산기를 예를 들어 보겠습니다. 이것 저것 더하다가 또 다른 수를 더해야 하는데, 더 이상 더하기를 할 수가 없다면 어떨까요? 그건 계산기 역할을 제대로 한다고 할 수가 없겠죠? 이점을 파이썬에서는 arguments 개수를 지정하지 않고 임의의 개수라고 지정하게 할 수 있다는 얘기입니다. 역시 글보다는 그림이 낫겠죠?

앞의 그림보다 위의 그림처럼 arguments 앞에 Asterisk sign(*) 을 붙여주면 몇개인지 모르겠지만, 여러개~의 인자가 들어올거다~라는 것을 지정하는 의미입니다.

앞서 언급한 계산기 기능중 더하기를 하는 함수를 만들어 보겠습니다.

위 그림처럼 total에는 초기값으로 0을 할당해 주고, 반복문을 통해 number 가 몇개인지는 모르겠지만, 그 안에 있는 것 하나하나를 a 라고 하고, total에 total + a 하게 하여 더하기를 수행하게 하였습니다.

그리고 그 결과를 출력하게 하는 함수입니다.

이제 함수를 만들었으니 호출해봐야겠죠? 위의 그림처럼 add_number() 에 5라는 숫자 하나만 argument 로 전달해 주었습니다. 결과는?

네. 초등, 아니 요즘은 유아원에서도 다루는 덧셈이므로 패스하겠습니다. 


그렇다면 이번에는 2개의 arguments 를 전달하게  하여 덧셈을 수행하게 하였습니다. 결과는?

3+35 = 40. 잘 수행하고 있군요. 컴퓨터가 아주 똘똘(?) 하네요.

이번에는 여러개를 넣어보겠습니다. 무려 5개(-_-;)나 넣어보았습니다.

역시 결과는 맞...맞을거에요. 똘똘(?)한 놈이니까요..;; 이렇듯 파이썬에서는 arguments의 개수를 지정해주지 않고 몇개인지 모를경우에 Asterisk Sign(*)을 사용한다는 점 기억해두시면 도움이 될 것입니다. 이번 시간은 여기까지 하겠습니다. 수고하셨습니다.