🐍 파이썬 (Python)

파이썬(Python) 기초 (11) ν•¨μˆ˜ 및 λžŒλ‹€( lambda ) , return , *args **kwargs hint (힌트)

Newmon 2019. 10. 23. 21:15

 νŒŒμ΄μ¬μ—μ„œ 반볡, 쀑볡적인 ν”„λ‘œκ·Έλž˜λ°μ„ ν”Όν•˜κΈ° μœ„ν•΄μ„œ 'ν•¨μˆ˜'λΌλŠ” 것을 μ‚¬μš©ν•©λ‹ˆλ‹€.

μ–΄λ– ν•œ μž…λ ₯을 톡해 λ°›μ•„μ˜¨ 값을, ν•¨μˆ˜λ₯Ό 거쳐 μ›ν•˜λŠ” 좜λ ₯κ°’(κ²°κ³Όκ°’)을 얻도둝 λ„μ™€μ£ΌλŠ” μ—­ν•  μž…λ‹ˆλ‹€.

 μ˜ˆλ₯Όλ“€μ–΄ μ–΄λ– ν•œ ν•™μƒλ“€μ˜ μˆ˜ν•™μ„±μ μ— λŒ€ν•œ 평균값을 λ‚΄λŠ” '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 인자 : ν‘œν˜„μ‹         μ΄λ ‡κ²Œ ν•œμ€„λ‘œ μˆ˜ν–‰μ΄ κ°€λŠ₯ν•˜λ„λ‘ λ§Œλ“€μ–΄ μ€λ‹ˆλ‹€. 

κ°„λ‹¨ν•˜κ²Œ κ³±μ…ˆμœΌλ‘œ 예λ₯Ό λ“€λ©΄