์ƒˆ์†Œ์‹

๐Ÿ ํŒŒ์ด์ฌ (Python)

ํŒŒ์ด์ฌ(Python) ๊ธฐ์ดˆ (11) ํ•จ์ˆ˜ ๋ฐ ๋žŒ๋‹ค( lambda ) , return , *args **kwargs hint (ํžŒํŠธ)

  • -

 ํŒŒ์ด์ฌ์—์„œ ๋ฐ˜๋ณต, ์ค‘๋ณต์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด์„œ 'ํ•จ์ˆ˜'๋ผ๋Š” ๊ฒƒ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์–ด๋– ํ•œ ์ž…๋ ฅ์„ ํ†ตํ•ด ๋ฐ›์•„์˜จ ๊ฐ’์„, ํ•จ์ˆ˜๋ฅผ ๊ฑฐ์ณ ์›ํ•˜๋Š” ์ถœ๋ ฅ๊ฐ’(๊ฒฐ๊ณผ๊ฐ’)์„ ์–ป๋„๋ก ๋„์™€์ฃผ๋Š” ์—ญํ•  ์ž…๋‹ˆ๋‹ค.

 ์˜ˆ๋ฅผ๋“ค์–ด ์–ด๋– ํ•œ ํ•™์ƒ๋“ค์˜ ์ˆ˜ํ•™์„ฑ์ ์— ๋Œ€ํ•œ ํ‰๊ท ๊ฐ’์„ ๋‚ด๋Š” 'A'๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ํ•˜๋ฉด, ํ•œ๋ฒˆ์˜ ํ•จ์ˆ˜ ์ƒ์„ฑ์„ ํ†ตํ•ด์„œ

1๋ฐ˜, 2๋ฐ˜, 3๋ฐ˜..... ์˜ ์ˆ˜ํ•™์„ฑ์ ์„ A์— ๋„ฃ์–ด์ฃผ๋ฉด ํ‰๊ท ๊ฐ’์ด ์ž๋™์œผ๋กœ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•œ๋ฒˆ์˜ ํ•จ์ˆ˜์ƒ์„ฑ์œผ๋กœ ํšจ์œจ์ ์ธ ๊ฒฐ

๊ณผ๊ฐ’์„ ์–ป๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


  * ํ•จ์ˆ˜์˜ ์„ ์–ธ ๋ฐ ๊ตฌ์กฐ

def ํ•จ์ˆ˜๋ช…(๋งค๊ฐœ๋ณ€์ˆ˜):

    (์‹คํ–‰๋ฌธ)                                             ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•œ ํ”„๋ฆฐํŠธ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ•จ์ˆ˜์ด๋ฆ„์€ hi, ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” wow์ด๋ฉฐ, ํ•จ์ˆ˜์˜ ๋‚ด์šฉ์€ "it is"๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , ๋’ค์—๋Š” ๋ฐ›์•„์˜ค๋Š” ๋ณ€์ˆ˜๋ฅผ ์‚ฝ์ž…ํ•˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๋•Œ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์•ž์œผ๋กœ ๋ฏธ๋ž˜์— ๋ฐ›์•„์˜ฌ ๊ฐ’์„ ๋Œ€์‹ ํ•˜์—ฌ, ๋ฏธ๋ฆฌ ์„ค์ •ํ•ด์ฃผ๋Š” ์ž„์‹œ๊ฐ’?, ์ž„์‹œ ์ด๋ฆ„? ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด๋‘๋ฉด ๋  ๊ฒƒ๊ฐ™์Šต๋‹ˆ๋‹ค.

(์—ฌ๊ธฐ์„œ๋Š” ๋‚˜์ค‘์— 'easy'๋ฅผ ๋ฐ›์•„์˜ค๊ธฐ์ „์— ์ž„์‹œ๋กœ wow ๋ผ๊ณ  ์ด๋ฆ„๋ถ™์—ฌ ๋†“์€๊ฑฐ๊ฒ ์ฃ ?)

 


            *๋ฆฌํ„ด(return)์ด ์žˆ๋Š” ํ•จ์ˆ˜

3๋ช…์ด ์žˆ๋Š” ํด๋ž˜์Šค์˜ ์„ฑ์  ํ‰๊ท ์„ ๊ตฌํ•œ๋‹ค๊ณ  ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์•ž์œผ๋กœ ๋ฐ›์•„์˜ฌ 3๊ฐœ์˜ ์„ฑ์ ์€ a,b,c๋ผ๊ณ  ๋ฏธ๋ฆฌ

์ด๋ฆ„์ง€์–ด๋†“๊ณ (๋งค๊ฐœ๋ณ€์ˆ˜)

average ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, (a+b+c)/3    (ํ‰๊ท ์„ ๊ตฌํ•˜๋„๋ก)๋ฆฌํ„ด์‹œ์ผฐ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์—๋Š” ์„ฑ์ ์ธ 3๊ฐ€์ง€ ์ˆซ์ž๋ฅผ ์‚ฝ์ž…ํ•ด์ฃผ๋ฉด, ์ž๋™์œผ๋กœ ๊ฒฐ๊ณผ๊ฐ’์ด ๋ฆฌํ„ด๋˜์–ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

 


             *argument

์œ„์˜ ์˜ˆ์ œ์—์„œ๋Š” 3๋ช…์˜ ํ•™์ƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์ฝ”๋”ฉ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ๋ฐ˜๋งˆ๋‹ค ํ•™์ƒ์ˆ˜๊ฐ€ ๋‹ค๋ฅด์ฃ . ์ด๋Ÿด๋•Œ๋Š”

*argument(์ธ์ž) ๋ผ๋Š”๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋ฉด ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋ณ€์ด ๊ฐ€๋Šฅํ•˜์—ฌ ๋ช‡๊ฐœ์˜ ์ธ์ž๊ฐ€ ๋“ค์–ด๊ฐ€๋”๋ผ๋„ ํŠœํ”Œํ˜•ํƒœ๋กœ ์ž‘๋™ํ•˜๊ฒŒ๋ฉ

๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ํ•™์ƒ์˜ ์ด๋ฆ„์„ ์ถœ๋ ฅํ•˜๋Š” ์˜ˆ์ œ๋ฅผ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

         **keyword argument

๋‹ค์Œ์€ *args์™€ ๋น„์Šทํ•˜์ง€๋งŒ ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๋ฐ›์•„์˜ค๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ๋ฒ•์€ ๊ฐ™์Šต๋‹ˆ๋‹ค๋งŒ, ์•ž์— *๋ฅผ 2๊ฐœ ๋ถ™์—ฌ์„œ **Name ๊ณผ ๊ฐ™์€๋ฐฉ์‹์œผ๋กœ ์ž…๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. 

 


            *ํžŒํŠธ (hint) 

๋ง ๊ทธ๋Œ€๋กœ, ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•œ ํžŒํŠธ ์ž…๋‹ˆ๋‹ค. 

๊ฐ€์žฅ ์œ—์ค„์„ ๋ณด์‹œ๋ฉด x๋Š” int ์ด๋ฉฐ list๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋‹ค๊ณ  ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ float๋ฅผ ์ถœ๋ ฅํ•ด๋ณด์•˜๋Š”๋ฐ ์ž˜ ๋˜๋„ค์š”. ์ฃผ์„๊ณผ ๋น„์Šทํ•œ ์—ญํ• ์ธ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. 


         *๋žŒ๋‹ค lambda

๋žŒ๋‹ค๋Š” ํ•จ์ˆ˜ ์„ ์–ธ์„ ํ•œ์ค„๋กœ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

            lambda ์ธ์ž : ํ‘œํ˜„์‹         ์ด๋ ‡๊ฒŒ ํ•œ์ค„๋กœ ์ˆ˜ํ–‰์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค. 

๊ฐ„๋‹จํ•˜๊ฒŒ ๊ณฑ์…ˆ์œผ๋กœ ์˜ˆ๋ฅผ ๋“ค๋ฉด

 

 

Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.