반응형

안녕하세요. 

제가 먼가 파이썬을 공부할 때, 처음부터 문법을 보면서 하는게 아니라 무언가를 만들고자 할 때 

그 때마다 필요한 부분을 구글링을 해서 찾습니다. 

 

이번에 필터링 어플리케이션을 만들 때, 가장 큰 난관이 return값을 여러 개 뿌렸을 때, 

제가 여러 값을 어떻게 받을 수 있을까 였습니다. 

 

예를 들어 필터링 어플리케이션을 만들면서 

 

 

 

return wav_name, sr, time, x

 

return 된 값이 4가지를 어떻게 하면 받을 수 있을까 고민했습니다.  

 

심지어 리턴되는 타입들이 서로 다 다릅니다.

아이고 두야...

그러면 어떻게 해야할까요? 

 

time과 x는 wav파일에 따라 가변적으로 변하는 값의 배열이였습니다. 

 

여기서 파이썬의 매력에 한 번 또 빠지게 됩니다.

 

복수 개의 인자를 한 번에 처리할 수 있는 키워드가 있습니다.

 

*arg (argument 매개 변수의 줄임말)

 

저는 *이 붙어 있길래 포인터인가 지레 겁먹었는데, 포인터가 아닌 복수개의 인자를 의미합니다.

 

좀 더 쉽게 함수에 값을 받는 부분에 저 녀석만 넣어주면 return값이 몇 개든 다 받을 수 있다는겁니다.

 

예제로 보겠습니다.

 

 

 

 

LPF(audio_read(wav_file_name))

 

1. audio_read(wav_file_name)

 

=> return wav_name, sr, time, x

 

2. LPF(*arg)

 

=> *arg == wav_name, sr, time, x

 

그렇다면 arg가 LPF에 인자로 들어간다면 arg의 타입을 한 번 찍어봐야겠죠?

 

tuple!

엇 tuple은 배열과 비슷한 것이 아닌가? 그럼 index를 가지고 있겠지? 

 

그렇다면 튜플의 쪼개는 것을 알아봐야합니다. 슬라이싱, 여러가지가 있는데 저는 for문을 써서 쪼개도록 하겠습니다.

 

생각보다 간단하네요?!

 

그러면 한 번 값을 제대로 전달되었는지 찍어보겠습니다.

 

네. 타입이 제대로 들어가 있네요. 원래는 값으로 봐야하는데... 머 오류없이 값이 잘나오니 넘어가겠습니다.

 

파이썬의 매력이 느껴지시나요? 저도 아직 파이썬스러운 코딩은 잘못하지만 하나씩 잡기술을 늘려 가고 있습니다.

 

그럴 때마다 오! 내꺼가 되었구나! 유용하네? 그런 느낌이 들 때마다 블로그에 적습니다.

 

개발잘하는 사람들이 프로그래밍 공부할 때는 1강부터 보면서 하는게 아니라 무언가를 계획하고 만들면서 

코딩을 공부하라고 합니다. 

 

저는 C로 시작했고, 어려워 코딩을 별로 좋아하지 않았습니다. 

당연히 무언가를 만드는걸 꺼려했습니다. 

하지만 파이썬은 마치 소통하듯이 비전공자들도 만들어가면서 할 수 있습니다. 

여러분들도 힘내시길 바랍니다

 

728x90
반응형

+ Recent posts