๐Ÿ“š ์Šคํ„ฐ๋””/ํŒŒ์ด์ฌ ์Šคํ„ฐ๋”” ๊ฐ•์˜์ž๋ฃŒ

[4ํŒ€/์ด์ œ์€] 5์ฐจ์‹œ ํŒŒ์ด์ฌ ์Šคํ„ฐ๋”” - ํ•จ์ˆ˜

์•Œ ์ˆ˜ ์—†๋Š” ์‚ฌ์šฉ์ž 2023. 4. 6. 17:12

DSOB_5๊ฐ•_๊ฐ•์˜์ž๋ฃŒ.pdf
0.58MB
DSOB_5๊ฐ•_๊ณผ์ œ.pdf
0.28MB

01 ํ•จ์ˆ˜ ๊ธฐ์ดˆ

> ํ•จ์ˆ˜์˜ ๊ฐœ๋…๊ณผ ์žฅ์ 

>> ์ฝ”๋”ฉ์˜ ๊ฝƒ, ํ•จ์ˆ˜

์ด๋•Œ๊นŒ์ง€ print( )๋‚˜ range ๋“ฑ๊ณผ ๊ฐ™์€ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์™”์Šต๋‹ˆ๋‹ค.

์ด๋ฒˆ ์žฅ์—์„œ๋Š” ์ด๋Ÿฐ ํ•จ์ˆ˜๋“ค์„ ์ง์ ‘ ๋งŒ๋“ค์–ด๋ด…์‹œ๋‹ค!

ํ•จ์ˆ˜๋ฅผ ์กฐ๊ธˆ ๋” ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ๋ฏน์„œ์— ๋น„์œ ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์–ด๋– ํ•œ ๊ณผ์ผ์„ ๊ฐ–๊ณ  ์ฃผ์Šค๋ผ๋Š” ์Œ์‹์„ ์™„์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„  ๋ฏน์„œ๋ผ๋Š” ๋„๊ตฌ๊ฐ€ ํ•„์š”ํ•˜์ฃ ! ์—ฌ๊ธฐ์„œ์˜ ๋ฏน์„œ๋Š” ๊ณผ์ผ์„ ์ž…๋ ฅ๋ฐ›์•„ ์ฃผ์Šค๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜์™€ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๐Ÿ˜Š ์ฆ‰, ์ž…๋ ฅ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์–ด๋–ค ์ผ์„ ์ˆ˜ํ–‰ํ•œ ๋‹ค์Œ์— ๊ทธ ๊ฒฐ๊ณผ๋ฌผ์„ ๋‚ด์–ด๋†“๋Š” ๊ฒƒ, ์ด๊ฒƒ์ด ๋ฐ”๋กœ ํ•จ์ˆ˜๊ฐ€ ํ•˜๋Š” ์ผ์ž…๋‹ˆ๋‹ค. (ํ•จ์ˆ˜์˜ ๊ฐœ๋…)

 

๊ทธ๋ ‡๋‹ค๋ฉด ์ด ๋ฏน์„œ๋ฅผ ์™œ ์‚ฌ์šฉํ• ๊นŒ์š”? ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๊ณผ์ผ์„ ์—ฌ๋Ÿฌ๋ฒˆ ์ฃผ์Šค๋กœ ๋งŒ๋“ค์–ด๋จน๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜๋„ ์ด์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๐Ÿ˜Š ์ฆ‰, ๋˜‘๊ฐ™์€ ์ž‘์—…์„ ์—ฌ๊ธฐ์„œ๋„ ํ•˜๊ณ , ์ €๊ธฐ์„œ๋„ ํ•˜๊ณ , ์—ฌ๋Ÿฌ ๋ฒˆ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. (ํ•จ์ˆ˜์˜ ์žฅ์ )

๋˜ํ•œ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ํ•˜๋‚˜์˜ ์ž‘์—…์„ ๊ฐ™์ด ์ž‘์—…ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋Œ€๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ์— ํŒ€์›๋“ค์ด ๊ฐ์ž ํ•ด์•ผ ํ•  ๋ถ€๋ถ„์„ ๋‚˜๋ˆ ์„œ ํ•˜๊ณ  ๋‚˜์ค‘์— ํ•ฉ์น˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜๋ผ๋Š” ๊ฐœ๋…์€ ๋ฐ”๋กœ ์ด ๋ฐฉ๋ฒ•์„ ๊ฐ€๋Šฅํ•˜๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค.

 

 

>> ๊ฐœ๋…๊ณผ ์žฅ์ 

 

ํ•จ์ˆ˜(funtion) : ์–ด๋–ค ์ผ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฝ”๋“œ์˜ ๋ฉ์–ด๋ฆฌ, ์ฝ”๋“œ์˜ ๋ฌถ์Œ

 

- ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ํ˜ธ์ถœ ๊ฐ€๋Šฅ

๋ฐ˜๋ณต์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์—…๋ฌด๋ฅผ ํ•œ ๋ฒˆ๋งŒ ์ž‘์„ฑํ•ด ๋†“๊ณ  ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๊ฐ™์€ ์ž‘์—…์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š์•„๋„ ๋จ)

 

- ๋…ผ๋ฆฌ์ ์ธ ๋‹จ์œ„๋กœ ๋ถ„ํ•  ๊ฐ€๋Šฅ

ํ•จ์ˆ˜๋Š” ์ฝ”๋“œ๋ฅผ ๋…ผ๋ฆฌ์ ์ธ ๋‹จ์œ„๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๊ฐ„๋‹จํžˆ ๋„ํ˜•์„ ๊ณ„์‚ฐํ•˜ ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊ณฑ์…ˆ์„ ํ•˜๋Š” ์ฝ”๋“œ, ๋ง์…ˆ์„ ํ•˜๋Š” ์ฝ”๋“œ, ๋‚˜๋ˆ—์…ˆ์„ ํ•˜๋Š” ์ฝ”๋“œ ๋“ฑ์œผ๋กœ ๋ถ„ํ• )

 

- ์ฝ”๋“œ์˜ ์บก์Šํ™”

ํ•จ์ˆ˜๋Š” ์ฝ”๋“œ์˜ ์บก์Šํ™”๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 


๐Ÿ’Š์บก์Šํ™”(Encapsulation) : ๋ฐ์ดํ„ฐ, ๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ์€ ๊ฒƒ

- ์บก์Šํ™”๋œ ๊ฐ์ฒด๋“ค์€ ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์„ธ๋ถ€ ๋‚ด์šฉ์ด ์€ํ(์ •๋ณด ์€๋‹‰)๋˜์–ด ์˜ค๋ฅ˜๊ฐ€ ์ ์Šต๋‹ˆ๋‹ค. ๋•๋ถ„์— ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋‹จ์ˆœํ•ด์ง€๊ณ , ๊ฐ์ฒด๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋‚ฎ์•„์ง‘๋‹ˆ๋‹ค.

- ์บก์Šํ™”๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋งŒ ์ž˜ ์ •์˜ํ•˜๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ž์‹ ์˜ ์ฝ”๋“œ๋ฅผ ์‰ฝ๊ฒŒ ๊ฐ€์ ธ๋‹ค ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

+ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ •์˜ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์ฝ”๋“œ์— ์ž…๋ ฅ๋˜๋Š” ์ž…๋ ฅ input๊ฐ’๊ณผ ์ฝ”๋“œ์˜ ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ์ธ ์ถœ๋ ฅ output ๊ฐ’์„ ๋ช…ํ™•ํžˆ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ํ”ํžˆ ๋ธ”๋ž™๋ฐ•์Šค๋ผ๊ณ ๋„ ํ•˜๋Š”๋ฐ, ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ž˜ ์ •์˜๋œ ํ•จ์ˆ˜๋ผ๋ฉด ์ฝ”๋“œ์˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ๋ชฐ๋ผ๋„ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์—๋Š” ์•„๋ฌด ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค.

 

> ํ•จ์ˆ˜์˜ ์„ ์–ธ

ํ•จ์ˆ˜๋ฅผ ์ง์ ‘ ๋งŒ๋“œ๋ ค๋ฉด ํ•จ์ˆ˜๋ฅผ ์ •์˜๋ถ€ํ„ฐ ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ Definition์˜ ์•ฝ์ž์ธ def๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค!

 

<๊ธฐ๋ณธ ํ˜•ํƒœ>

def ํ•จ์ˆ˜ ์ด๋ฆ„ (๋งค๊ฐœ๋ณ€์ˆ˜ #1 ...):
	๋ช…๋ น๋ฌธ 1
	๋ช…๋ น๋ฌธ 2
	return ๏ผœ๋ฐ˜ํ™˜๊ฐ’๏ผž
  1. def๋ฅผ ํ†ตํ•ด ํ•จ์ˆ˜ ์ด๋ฆ„๊ณผ ๋ฐ›์•„์˜ฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ •ํ•ด์ค๋‹ˆ๋‹ค.
  2. ํ•จ์ˆ˜ ์ด๋ฆ„ : ํ•จ์ˆ˜ ์ด๋ฆ„์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งˆ์Œ๋Œ€๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ํŒŒ์ด์ฌ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 
    • ์†Œ๋ฌธ์ž๋กœ ์ž…๋ ฅํ•œ๋‹ค.
    • ๋„์–ด์“ฐ๊ธฐ๋ฅผ ํ•  ๊ฒฝ์šฐ์— _ ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    • ์ž‘์—…์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ๋™์‚ฌ์™€ ๋ช…์‚ฌ๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ex) save_model
    • ์™ธ๋ถ€์— ๊ณต๊ฐœํ•˜๋Š” ํ•จ์ˆ˜์ผ ๊ฒฝ์šฐ ์ค„์ž„๋ง์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์งง๊ณ  ๋ช…๋ฃŒํ•œ ์ด๋ฆ„์œผ๋กœ ์ •ํ•œ๋‹ค.
  3. ๋งค๊ฐœ๋ณ€์ˆ˜ (parameter, ํŒŒ๋ผ๋ฏธํ„ฐ) : ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜์—์„œ ์ž…๋ ฅ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ณ€์ˆ˜๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, 1๊ฐœ ์ด์ƒ์˜ ๊ฐ’์„ ์ ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•ด ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ ๋’ค ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ’์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  4. ๋ช…๋ น๋ฌธ : ํ•จ์ˆ˜ ๋‚ด๋ถ€์˜ ๋ช…๋ น ์ฝ”๋“œ๋“ค์€ ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋ง™์‹œ๋‹ค! ์ˆ˜ํ–‰ํ•˜๋Š” ์ฝ”๋“œ๋Š” ์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์šด ์ผ๋ฐ˜์ ์ธ ์ฝ”๋“œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ๊ฐ„๋‹จํ•œ ๋ง์…ˆ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๋ฉด์„œ ๊ฐ์„ ์žก์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋จผ์ € ํ•จ์ˆ˜๊ฐ€ ํ•  ์ผ์„ ์ •ํ™•ํžˆ ์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜์˜ ํ•  ์ผ์€ ์ˆซ์ž ๋‘ ๊ฐœ๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„ ๋ง์…ˆ์„ ํ•œ ๋’ค ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

<์‹ค์Šต>

def add_two_num(a, b):
    print("๋ง์…ˆ์ค‘...")
    result = a + b
    return result


value = add_two_num(10, 13)
print(value)

→ ๋‘ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ , ‘๋ง์…ˆ์ค‘…’์ด๋ผ๋Š” ๋ฌธ์žฅ์„ ์ถœ๋ ฅํ•œ ๋’ค์—, ๋‘ ์ˆ˜๋ฅผ ๋”ํ•œ ๊ฐ’์„ ๋ฆฌํ„ด๊ฐ’์œผ๋กœ ๋ฐ›์•„์˜ค๋Š” ํ•จ์ˆ˜

→ ํ•จ์ˆ˜๋ฅผ ์œ„์—์„œ ์ •์˜ํ•ด์ฃผ์–ด์•ผ ํ•จ : ๊ธฐ๋ณธ์ ์œผ๋กœ ์ฝ”๋“œ๋Š” ์œ„์—์„œ ์•„๋ž˜๋กœ ์ง„ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์œ„์—์„œ ์ •์˜ํ•˜์ง€ ์•Š์œผ๋ฉด ์‹คํ–‰๋ฌธ์—์„œ ํ•จ์ˆ˜๋ฅผ ์ฐพ์ง€ ๋ชปํ•จ

→ a, b ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜, 10, 13์€ ์ธ์ˆ˜

 

 

<return>

๋ฆฌํ„ด๊ฐ’์˜ ์—ญํ• ์„ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด ์œ„์˜ ์ฝ”๋“œ์—์„œ ๋ฆฌํ„ด๊ฐ’ ์ •์˜๋ฅผ ๋นผ๊ณ  ์‹คํ–‰ํ•˜์—ฌ ๋ด…์‹œ๋‹ค.

def add_two_num(a, b):
    print("๋ง์…ˆ์ค‘...")
    result = a + b


value = add_two_num(10, 13)
print(value)

์ด๋ ‡๊ฒŒ ๋ฆฌํ„ด๊ฐ’์„ ์ •์˜ํ•ด์ฃผ์ง€ ์•Š์œผ๋ฉด, ๊ธฐ๋ณธ๊ฐ’์€ None์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. ๋ฆฌํ„ด๊ฐ’์€ ํ•จ์ˆ˜๋ผ๋Š” ๋ฏน์„œ๊ฐ€ ๋งŒ๋“ค์–ด๋‚ธ ์ฃผ์Šค๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํŽธํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰, ๊ฒฐ๊ณผ๋ฌผ, ์ถœ๋ ฅ๊ฐ’์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

ํ•œ๊ฐ€์ง€ ์•Œ๊ณ ์žˆ์–ด์•ผ ํ•˜๋Š” ์ ์€ return์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ, ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. (ํ•จ์ˆ˜๋ฅผ ๋๋‚ด๋Š” return์˜ ํž˜)

 

 > ํ•จ์ˆ˜์˜ ํ˜•ํƒœ

ํ•จ์ˆ˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋ฆฌํ„ด๊ฐ’(๋ฐ˜ํ™˜๊ฐ’)์˜ ์œ ๋ฌด์— ๋”ฐ๋ผ ๋„ค ๊ฐ€์ง€ ํ˜•ํƒœ๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ๊ฐ์˜ ํ•จ์ˆ˜๋ฅผ ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•ด๋ด…์‹œ๋‹ค!

 

def add(a, b): 
    result = a + b 
    return result


a = add(3, 4)
print(a)

๋งค๊ฐœ๋ณ€์ˆ˜O, ๋ฐ˜ํ™˜๊ฐ’O

 

def add(a, b): 
    print("%d, %d์˜ ํ•ฉ์€ %d์ž…๋‹ˆ๋‹ค." % (a, b, a+b))


add(3, 4)
a = add(3, 4)
print(a)

๋งค๊ฐœ๋ณ€์ˆ˜O, ๋ฐ˜ํ™˜๊ฐ’X

 

def say(): 
    return 'Hi'


a = say()
print(a)

๋งค๊ฐœ๋ณ€์ˆ˜X, ๋ฐ˜ํ™˜๊ฐ’O

 

def say(): 
    print('Hi')

say()

๋งค๊ฐœ๋ณ€์ˆ˜X, ๋ฐ˜ํ™˜๊ฐ’X

 

 

 02 ํ•จ์ˆ˜์˜ ์ธ์ˆ˜

> ๋ณ€์ˆ˜

์ด์ œ ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ๋‹ค๋ค„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ณ€์ˆ˜๋ผ๋ฉด ์ „์— ๋ฐฐ์› ์ง€๋งŒ, ์ €๋ฒˆ์—๋Š” ์ž๋ฃŒํ˜•์„ ์ค‘์ ์œผ๋กœ ๋ฐฐ์› ๊ณ , ์ด๋ฒˆ์—๋Š” ๋ณ€์ˆ˜์˜ ์ข…๋ฅ˜๋“ค์„ ๋ฐฐ์›Œ๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

- ์ „์—ญ๋ณ€์ˆ˜์™€ ์ง€์—ญ๋ณ€์ˆ˜

๋จผ์ € ๋ณ€์ˆ˜์—๋Š” ์ „์—ญ๋ณ€์ˆ˜์™€ ์ง€์—ญ๋ณ€์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „์—ญ๋ณ€์ˆ˜ : ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด ์˜์—ญ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ณ€์ˆ˜

์ง€์—ญ๋ณ€์ˆ˜ : ํŠน์ • ์ฝ”๋“œ๋ธ”๋ก์—์„œ๋งŒ ์ง€์—ญ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ณ€์ˆ˜

 

def add_two_num(a, b):
    print("๋ง์…ˆ์ค‘...")
    result = a + b
    return result


result = 0
add_two_num(10,13)
print(result)

์œ„ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ถ„๋ช… result ๊ฐ’์— 10 + 13 ๊ณ„์‚ฐ์„ ํ•ด์„œ ๋Œ€์ž…ํ–ˆ๋Š”๋ฐ ๊ฒฐ๊ณผ๋Š” 0์ด ๋‚˜์™”์Šต๋‹ˆ๋‹ค.

์ด๋Š” ์ง€์—ญ๋ณ€์ˆ˜์™€ ์ „์—ญ๋ณ€์ˆ˜์˜ ๊ฐœ๋…์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. result = 0๊ณผ result = a + b ์—์„œ์˜ result๋Š” ์„œ๋กœ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

add_two_num ์•ˆ์˜ result๋Š” ํ•ด๋‹น ํ•จ์ˆ˜ ๋‚ด์—์„œ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ์ง€์—ญ๋ณ€์ˆ˜๋กœ์จ ์‚ฌ์šฉ๋˜๊ณ  ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

→ ๊ทธ๋ ‡๋‹ค๋ฉด ํ•จ์ˆ˜ ์•ˆ์—์„œ ์ „์—ญ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด? : global ๋ณ€์ˆ˜ ์ง€์ •

 

def add_two_num(a, b):
    global result
    print("๋ง์…ˆ์ค‘...")
    result = a + b
    return result

result = 0
add_two_num(10,13)
print(result)

ํ•จ์ˆ˜ ์•ˆ์—์„œ result๋ฅผ global ๋ณ€์ˆ˜๋กœ ์ง€์ •ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๊ฐ€ ์šฐ๋ฆฌ๊ฐ€ ์ƒ๊ฐํ•˜๋Š”๋Œ€๋กœ ๋‚˜์™”์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

> ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ์ธ์ˆ˜

๐Ÿง ๋งค๊ฐœ๋ณ€์ˆ˜(parameter)์™€ ์ธ์ˆ˜(argument)์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ผ๊นŒ์š”?

์ฝ”๋“œ์™€ ํ•จ๊ป˜ ์‚ดํŽด๋ด…์‹œ๋‹ค.

def add_two_num(a, b):    # ํ•จ์ˆ˜ ์ •์˜
    print("๋ง์…ˆ์ค‘...")
    result = a + b
    return result


a = 10
b = 13
value = add_two_num(a, b) # ํ•จ์ˆ˜ ํ˜ธ์ถœ

์šฐ๋ฆฌ๋Š” ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ๋•Œ, ๊ทธ๋ฆฌ๊ณ  ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ, ๊ฐ’์„ ๋„ฃ์Šต๋‹ˆ๋‹ค.

ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ๋•Œ ๋„ฃ๋Š” ๊ฐ’(๋ณ€์ˆ˜)๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋ผ ํ•˜๊ณ ,

ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ๋„ฃ๋Š” ๊ฐ’์„ ์ธ์ˆ˜๋ผ ํ•ฉ๋‹ˆ๋‹ค.

 

> ์ธ์ˆ˜์˜ ์ข…๋ฅ˜

ํ•จ์ˆ˜์˜ ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด๊ฐ€๋Š” ๋ณ€์ˆ˜์ธ ์ธ์ˆ˜์˜ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ์— ๋Œ€ํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค!

 

>> ํ‚ค์›Œ๋“œ ์ธ์ˆ˜

→ ํ•จ์ˆ˜์˜ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ง€์ •ํ•œ ๋ณ€์ˆ˜๋ช…์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•จ์ˆ˜์˜ ์ธ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

def print_sth(my_name, your_name):
    print("Hello {0}, My name is {1}".format(your_name, my_name))


print_sth("Minji", "Hanni")
print_sth(your_name = "Hanni", my_name = "Minji")

print_sth ํ•จ์ˆ˜๋Š” (my_name, your_name)์ด๋ผ๋Š” ์ž…๋ ฅ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋• ์ธ์ˆ˜๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ์ž…๋ ฅ๋˜๋„๋ก ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (์ฒซ ๋ฒˆ์งธ print)

๊ทธ๋Ÿฌ๋‚˜ ํ•จ์ˆ˜์˜ ์ž…๋ ฅ ๋ณ€์ˆ˜๋ช…๋งŒ ์ •ํ™•ํžˆ ๊ธฐ์žฌ๋œ๋‹ค๋ฉด ์ˆœ์„œ์— ์ƒ๊ด€์—†์ด ์›ํ•˜๋Š” ๋ณ€์ˆ˜์— ์ธ์ˆ˜๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๋‘ ๋ฒˆ์งธ print)

์ด์ฒ˜๋Ÿผ ํ•จ์ˆ˜์˜ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ง€์ •ํ•œ ๋ณ€์ˆ˜๋ช…์„ ์‚ฌ์šฉํ•ด์„œ ์ธ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ‚ค์›Œ๋“œ ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

 

 

 

>> ๋””ํดํŠธ ์ธ์ˆ˜

→ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๊ธฐ๋ณธ๊ฐ’์„ ์ง€์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ณ  ์•„๋ฌด๋Ÿฐ ๊ฐ’๋„ ์ธ์ˆ˜๋กœ ๋„˜์–ด๊ฐ€์ง€ ์•Š์„ ๋•Œ ์ง€์ •๋œ ๊ธฐ๋ณธ๊ฐ’(๋””ํดํŠธ ๊ฐ’)์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

def print_sth_2(my_name, your_name = "Hanni"):
    print("Hello {0}, My name is {1}".format(your_name, my_name))


print_sth_2("Minji", "Hanni")
print_sth_2("Minji")

1ํ–‰์—์„œ ํ•จ์ˆ˜์˜ ์ž…๋ ฅ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ •์˜ํ–ˆ๋Š”๋ฐ, your_name ๋งค๊ฐœ๋ณ€์ˆ˜์—๋Š” ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ “Hanni”๊ฐ€ ์ง€์ •๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

→ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ your_name ๋งค๊ฐœ๋ณ€์ˆ˜์—๋Š” ๋ณ„๋„์˜ ๊ฐ’์„ ํ• ๋‹นํ•˜์ง€ ์•Š์•„๋„ ๋””ํดํŠธ ๊ฐ’์ด ํ• ๋‹น๋จ

 

 

>> ๊ฐ€๋ณ€ ์ธ์ˆ˜

→ ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐœ์ˆ˜๊ฐ€ ์ •ํ•ด์ง€์ง€ ์•Š์€ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• ex) ๊ณ ๊ฐ์ด ๋ฌผ๊ฑด์„ ์–ผ๋งˆ๋‚˜ ๊ตฌ๋งคํ• ์ง€ ๋ชจ๋ฅด๋Š” ๋งˆํŠธ ๊ณ„์‚ฐ ๋“ฑ…

→ * ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅ ( * ๋Š” asterisk๋ผ๊ณ  ๋ถ€๋ฆ„)

def asterisk_test(a, b, *args):
    return a + b + sum(args)


print(asterisk_test(1, 2, 3, 4, 5))

# args ๋Š” argument๋ฅผ ์ค„์ธ ๊ฒƒ, ์ฆ‰ ์ธ์ˆ˜๋“ค-์ด๋ผ๋Š” ๋œป์œผ๋กœ ์‚ฌ์šฉ…

ํ•จ์ˆ˜ asteisk_test( )๋Š” ๋ณ€์ˆ˜ a, b๋ฅผ ๋„˜๊ฒจ๋ฐ›๊ณ , ๋‚˜๋จธ์ง€๋ฅผ *args๋กœ ๋„˜๊ฒจ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” *args๊ฐ€ ๊ฐ€๋ณ€ ์ธ์ˆ˜๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰, 1๊ณผ 2๋Š” ๊ฐ๊ฐ a์™€ b์— ํ• ๋‹น๋˜๊ณ , ๋‚˜๋จธ์ง€ ์ธ์ˆ˜์ธ 3, 4, 5๊ฐ€ ๋ชจ๋‘ *args์— ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค.

 

- ํ˜•ํƒœ

๊ฐ€๋ณ€ ์ธ์ˆ˜์˜ ํ˜•ํƒœ๋ฅผ ํ™•์ธํ•ด๋ณด๊ธฐ ์œ„ํ•ด ์ง์ ‘ ์ถœ๋ ฅํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!

def asterisk_test(a, b, *args):
    print(args)


print(asterisk_test(1, 2, 3, 4, 5))

์ถœ๋ ฅํ•ด๋ณด๋‹ˆ ๊ฒฐ๊ณผ๊ฐ’์ด ๊ด„ํ˜ธ์— ๋ฌถ์—ฌ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๊ด„ํ˜ธ๋กœ ๋ฌถ์—ฌ ์ถœ๋ ฅ๋˜๋Š” ์ž๋ฃŒํ˜•์„ ํŠœํ”Œ(tuple) ์ž๋ฃŒํ˜•์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค! (๋‚˜์ค‘์— ๋ฐฐ์šฐ๊ฒ ์ง€๋งŒ ๋ฆฌ์ŠคํŠธ ์ž๋ฃŒํ˜•์ฒ˜๋Ÿผ ์ธ๋ฑ์Šค๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

 

- ํŠน์ง•

๐Ÿ’ฌ ๊ฐ€๋ณ€ ์ธ์ˆ˜ * ๋Š” ๋ฐ˜๋“œ์‹œ ์ผ๋ฐ˜์ ์ธ ํ‚ค์›Œ๋“œ ์ธ์ˆ˜์— ๋Œ€ํ•œ ์„ ์–ธ์ด ๋๋‚œ ํ›„ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์„ ์–ธ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ฌ ๊ฐ€๋ณ€ ์ธ์ˆ˜๋Š” ํŠœํ”Œ ํ˜•ํƒœ๋กœ ๋ฆฌ์ŠคํŠธ์™€ ๊ฐ™์ด ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ฌ ๊ฐ€๋ณ€ ์ธ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ •ํ™•ํžˆ ์•ˆ๋‹ค๋ฉด ์–ธํŒจํ‚น์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

def asterisk_test_2(*args):
    x, y, *z = args
    return x, y, z


print(asterisk_test_2(3, 4, 5, 6, 7))

→ * ๋Š” ๊ธฐ๋Šฅ์ด ๋‹ค์–‘ํ•˜์—ฌ ์–ธํŒจํ‚นํ•  ๋•Œ๋„ ๊ฐ’์„ ๊ฐ€๋ณ€ ์ธ์ˆ˜์˜ ํ˜•ํƒœ๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

>> ํ‚ค์›Œ๋“œ ๊ฐ€๋ณ€ ์ธ์ˆ˜

→ ๊ธฐ์กด์˜ ๊ฐ€๋ณ€ ์ธ์ˆ˜๋Š” ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

→ ํ‚ค์›Œ๋“œ ๊ฐ€๋ณ€ ์ธ์ˆ˜๋Š” **๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

def kwargs_test(**kwargs):
    print(kwargs)
    print("First value is {first}".format(**kwargs))
    print("Second value is {second}".format(**kwargs))
    print("Third value is {third}".format(**kwargs))


kwargs_test(first = 3, second = 4, third = 5) # ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์ธ์ˆ˜(๋ณ€์ˆ˜)์˜ ์ด๋ฆ„์„ ๋ฏธ๋ฆฌ ์ •ํ•ด๋†“๋Š”๋‹ค.

# kwargs๋Š” keyword arguments๋ฅผ ์ค„์ธ ๊ฒƒ, ์ฆ‰ ํ‚ค์›Œ๋“œ ์ธ์ˆ˜๋“ค-์ด๋ผ๋Š” ๋œป์œผ๋กœ ์‚ฌ์šฉ…

ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ first, second, third ์ธ์ˆ˜ ์ด 3๊ฐ€์ง€๋ฅผ ๋„˜๊ฒผ์Šต๋‹ˆ๋‹ค. print ํ•จ์ˆ˜์—์„œ ๊ทธ ์ธ์ˆ˜๋“ค์ด {’first’ : 3, ‘second’ = 4, ‘third’ = 5}์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์ถœ๋ ฅ์ด ๋ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ { ‘๋ณ€์ˆ˜๋ช…’ = ๊ฐ’, ‘๋ณ€์ˆ˜๋ช…2’ = ๊ฐ’2 …} ์™€ ๊ฐ™์ด ๋ณ€์ˆ˜๋ช…๊ณผ ๊ฐ’์„ ํ•œ ์Œ์œผ๋กœ ํ•ด์„œ ์ €์žฅํ•˜๋Š” ํ˜•ํƒœ๋ฅผ ๋”•์…”๋„ˆ๋ฆฌ ์ž๋ฃŒํ˜•์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

→ ์ฆ‰, ํ‚ค์›Œ๋“œ ๊ฐ€๋ณ€ ์ธ์ˆ˜๋Š” ๋”•์…”๋„ˆ๋ฆฌ ์ž๋ฃŒํ˜•์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

kwargs = {'first': 3, 'second': 4, 'third': 5}
print("Second value is {second}".format(**kwargs))
print("Second value is {second}".format(first =3, second = 4, third =5))

def kwargs_test(one, two, *args, **kwargs):
    print(one + two + sum(args))
    print(kwargs)


kwargs_test(3, 4, 5, 6, 7, 8, 9, first=3, second=4, third=5)

 

 

 03 ์ข‹์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•

> ์ข‹์€ ์ฝ”๋“œ์˜ ์˜๋ฏธ

์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ํŒ€ํ”Œ๋ ˆ์ด์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ๊ณผ ํ•จ๊ป˜ ์ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๋ฐœํ‘œ๋ฅผ ํ•˜๋“ฏ ์‚ฌ๋žŒ๋“ค๊ณผ ์†Œํ†ตํ•˜๋ฉด์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋”๋ณด๊ธฐ

“์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๋Š” ์–ด๋Š ๋ฐ”๋ณด๋‚˜ ๋‹ค ์งค ์ˆ˜ ์žˆ๋‹ค. ์ข‹์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์‚ฌ๋žŒ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์ง ๋‹ค.” - ๋งˆํ‹ด ํŒŒ์šธ๋Ÿฌ

๐Ÿ™Œ ์ฆ‰, ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ๊ต‰์žฅํžˆ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. (๊ฐ€๋…์„ฑ)

๐Ÿ‘Œ ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ๋Š” ๋งŽ์€ ์‚ฌ๋žŒ์ด ์‰ฝ๊ฒŒ ์ฝ๊ณ  ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ€๋…์„ฑ์ด ์ข‹์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

> ์ฝ”๋”ฉ ๊ทœ์น™

ํŒŒ์ด์ฌ ํ‚ค๋ณธ ์ฝ”๋”ฉ ๊ทœ์น™ ์ค‘ ๋Œ€ํ‘œ์ ์ธ ๊ฒƒ ๐Ÿ‘

- ๋“ค์—ฌ์“ฐ๊ธฐ๋Š” 4 ์ŠคํŽ˜์ด์Šค

- ํ•œ ์ค„์€ ์ตœ๋Œ€ 79์ž๊นŒ์ง€

- ๋ถˆํ•„์š”ํ•œ ๊ณต๋ฐฑ์€ ์—†์• ๊ธฐ

 

PEP-8 ์ค‘ ๋Œ€ํ‘œ์ ์ธ ๊ฒƒ ๐Ÿ‘

- ์—ฐ์‚ฐ์ž๋Š” ํ•œ ์นธ ์ด์ƒ ๋„์šฐ์ง€ ์•Š๋Š”๋‹ค.

- ์ฃผ์„์€ ํ•ญ์ƒ ๊ฐฑ์‹ ํ•˜๊ณ  ๋ถˆํ•„์š”ํ•œ ์ฃผ์„์€ ์‚ญ์ œํ•œ๋‹ค. 

- ์†Œ๋ฌธ์ž l(์—˜), ๋Œ€๋ฌธ์ž O(์˜ค), ๋Œ€๋ฌธ์ž I(์•„์ด)๋Š” ์‚ฌ์šฉ์„ ๊ธˆํ•œ๋‹ค. 

lIO0 = "Hard to Understand"  # ๊ตฌ๋ถ„ํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค...

- ํ•จ์ˆ˜๋Š” ์†Œ๋ฌธ์ž๋กœ ๊ตฌ์„ฑํ•˜๊ณ , ํ•„์š”ํ•˜๋ฉด ๋ฐ‘์ค„๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.

 

 

> ํ•จ์ˆ˜ ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ๋ผ์ธ

>> ํ•จ์ˆ˜์˜ ์ด๋ฆ„

- ํ•จ์ˆ˜ ๋‚ด์šฉ์€ ๊ฐ€๋Šฅํ•˜๋ฉด ์งง๊ฒŒ (์ค„ ์ˆ˜๋ฅผ ์ค„์—ฌ์„œ) ์ž‘์„ฑํ•  ๊ฒƒ

- ํ•จ์ˆ˜ ์ด๋ฆ„์— ํ•จ์ˆ˜์˜ ์—ญํ• ๊ณผ ์˜๋„๋ฅผ ๋ช…ํ™•ํžˆ ๋“œ๋Ÿฌ๋‚ผ ๊ฒƒ

์ฃผ๋กœ ‘๋™์‚ฌ+๋ช…์‚ฌ’์˜ ํ˜•ํƒœ๋กœ ์ด๋ฆ„์„ ์ง€์ •ํ•  ๋•Œ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

def print_hello_world():
    print("Hello, World")
def get_hello_world():
    return "Hello, World"

 

>> ํ•จ์ˆ˜์˜ ์—ญํ• 

- ํ•จ์ˆ˜๋Š” ํ•œ ๊ฐ€์ง€ ์—ญํ• ์„ ๋ช…ํ™•ํžˆ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

- ์ตœ์†Œํ•œ์˜ ์—ญํ• ๋งŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก!

def add_variables(x, y)๏ผš
return x + y

def add_variables(x, y):
print(x, y)
return x + y

→ ๋‘ ๋ณ€์ˆ˜๋ฅผ ๋”ํ•˜๋Š” ํ•จ์ˆ˜ํ•˜๋ฉด ๊ตณ์ด ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํ™”๋ฉด์— ์ถœ๋ ฅํ•  ํ•„์š”๋Š” ์—†๋‹ค.

 

 

>> ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š” ๊ฒฝ

1. ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ๋ฅผ ํ•จ์ˆ˜๋กœ ๋ณ€ํ™˜

a = 5
if (a>3):
    print("Hello World")
    print("Hello SWU")
if (a>4):
    print("Hello World")
    print("Hello SWU")
if (a>5):
    print("Hello World")
    print("Hello SWU")
def print_hello():
    print("HeUo World")
    print("Hello SWU")

a = 5
if (a > 3):
    print_hello()

if (a > 4):
    print_hello()

if (a >5):
    print_hello()

 

2. ๋ณต์žกํ•œ ๋กœ์ง์ด ์‚ฌ์šฉ๋˜์—ˆ์„ ๋•Œ ์‹๋ณ„ ๊ฐ€๋Šฅํ•œ ์ด๋ฆ„์˜ ํ•จ์ˆ˜๋กœ ๋ณ€ํ™˜

import math
a = 1; b = -2; c = 1

print((-b + math.sqrt(b ** 2 - (4 * a * c)) ) / (2 * a))
print((-b - math.sqrt(b ** 2 - (4 * a * c)) ) / (2 * a))

1.0

1.0

ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๋Š” ์ž…์žฅ์—์„œ ๊ณต์‹์˜ ์˜๋ฏธ๋งŒ ์•Œ๋ฉด ๋˜๊ณ  ๊ตณ์ด ๊ณต์‹์˜ ๊ตฌํ˜„ ๊ณผ์ •๊นŒ์ง€๋Š” ์•Œ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.

import math

def get_result_quadratic_equation(a, b, c):
    values = [ ]
    values.append((-b + math.sqrt(b ** 2 - (4 * a * c))) / (2 * a))
    values.append((-b - math.sqrt(b ** 2 - (4 * a * c)) ) / (2 * a))
    return values


print(get_result_quadratic_equation(1,-2,1))

[1.0, 1.0]