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

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

๊ฒฝ์€ 2023. 4. 5. 22:47

๋ฐ์ดํ„ฐ ๊ณผํ•™์„ ์œ„ํ•œ ํŒŒ์ด์ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ต์žฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑํ•œ ๊ฐ•์˜์ž๋ฃŒ์ž…๋‹ˆ๋‹ค.

5์ฐจ์‹œ_ํ•จ์ˆ˜_๊ฐ•์˜์•ˆ.pdf
0.52MB
5์ฐจ์‹œ_ํ•จ์ˆ˜_๊ณผ์ œ.pdf
1.10MB

ํ•จ์ˆ˜

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

 

ํ•จ์ˆ˜์˜ ์žฅ์ 

 

  1. ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ํ˜ธ์ถœ ๊ฐ€๋Šฅ : ํ•จ์ˆ˜๋Š” ๋ฐ˜๋ณต์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์—…๋ฌด๋ฅผ ํ•œ๋ฒˆ๋งŒ ์ž‘์„ฑํ•ด ๋†“๊ณ  ํ•„์š”ํ• ๋•Œ๋งˆ๋‹ค ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•  ๋•Œ ๊ฐ™์€ ์ž‘์—…์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.
  2. ๋…ผ๋ฆฌ์ ์ธ ๋‹จ์œ„๋กœ ๋ถ„ํ•  ๊ฐ€๋Šฅ : ํ•จ์ˆ˜๋Š” ์ฝ”๋“œ๋ฅผ ๋…ผ๋ฆฌ์ ์ธ ๋‹จ์œ„๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ„๋‹จํžˆ ๋„ํ˜•์„ ๊ณ„์‚ฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋”๋ผ๋„ ๊ณฑ์…ˆ์„ ํ•˜๋Š” ์ฝ”๋“œ, ๋ง์…ˆ์„ ํ•˜๋Š” ์ฝ”๋“œ, ๋‚˜๋ˆ—์…ˆ์„ ํ•˜๋Š” ์ฝ”๋“œ ๋“ฑ์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.
  3. ์ฝ”๋“œ์˜ ์บก์Šํ™” : ์บก์Šํ™”๋Š” ํ•จ์ˆ˜์˜ ์ธํ„ฐํŽ˜์ด์Šค๋งŒ ์ž˜ ์ •์˜ํ•˜๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ž์‹ ์˜ ์ฝ”๋“œ๋ฅผ ์‰ฝ๊ฒŒ ๊ฐ€์ ธ๋‹ค ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์ง•์ด ์žˆ๋‹ค.

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

ํŒŒ์ด์ฌ์—์„œ ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ๋ฐฉ๋ฒ•

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

ํ•จ์ˆ˜ ์„ ์–ธ ์ž‘์„ฑ ์˜ˆ์‹œ

def calculate_rectangle_area(x,y)
    return x*y

ํ•จ์ˆ˜์ด๋ฆ„ : calculate_rectangle_area

๋งค๊ฐœ๋ณ€์ˆ˜ : x, y

return : ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” ๋œป

→ x์™€ y๋ฅผ ๊ณฑํ•œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜

 

ํ•จ์ˆ˜์˜ ์‹คํ–‰ ์ˆœ์„œ

def calculate_rectangle_area(x,y):
    return x*y

rectangle_x = 10
rectangle_y = 20
print("์‚ฌ๊ฐํ˜• x์˜ ๊ธธ์ด:", rectangle_x)
print("์‚ฌ๊ฐํ˜• y์˜ ๊ธธ์ด:", rectangle_y)

#๋„“์ด๋ฅผ ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ
print("์‚ฌ๊ฐํ˜•์˜ ๋„“์ด:", claculate_rectangle_area(rectangle_x, rectangle_y))
#์‹คํ–‰๊ฒฐ๊ณผ

์‚ฌ๊ฐํ˜• x์˜ ๊ธธ์ด:10
์‚ฌ๊ฐํ˜• y์˜ ๊ธธ์ด:20
์‚ฌ๊ฐํ˜•์˜ ๋„“์ด: 200
  1. ํ•จ์ˆ˜๊ฐ€ ์ •์˜๋œ def๋Š” ์ •์˜๋งŒ ํ•˜๋Š”๊ฒƒ์œผ๋กœ ํ•จ์ˆ˜๋งŒ ํŒŒ์ผ์— ์ €์žฅํ•˜๊ณ  ํŒŒ์ด์ฌ ๋ช…๋ น์œผ๋กœ ์‹คํ–‰์‹œ์ผฐ์„ ๋•Œ ๋ณ„๋„์˜ ์ถœ๋ ฅ์ด ์ผ์–ด๋‚˜์ง€ ์•Š์Œ→ ๋งŒ์•ฝ ํ•จ์ˆ˜์˜ ์„ ์–ธ ๋ถ€๋ถ„์„ ์ฝ”๋“œ์˜ ๋งจ ๋งˆ์ง€๋ง‰์— ์ž…๋ ฅํ•œ๋‹ค๋ฉด ํ•ด๋‹น ์ฝ”๋“œ ํ˜ธ์ถœ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ → ์•„๋ฌด๊ฒƒ๋„ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์—…๋กœ๋“œํ•˜์—ฌ ๋‹ค๋ฅธ ์ฝ”๋“œ๋ฅผ ํ˜ธ์ถœํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ค€๋น„ ๊ณผ์ •์„ ๊ฑฐ์นจ
  2. rectangle_x = 10 rectangle_y = 20 → 2๊ฐœ์˜ ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•˜๊ณ  ๊ทธ ๊ฐ’์„ ์ถœ๋ ฅ
  3. claculate_rectangle_area(rectangle_x, rectangle_y) ์ถœ๋ ฅ,
  4. ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  rectangle_x ์™€ rectangle_y ๋ณ€์ˆ˜์— ํ• ๋‹น๋œ ๊ฐ’์ด claculate_rectangle_area ํ•จ์ˆ˜์— ์ž…๋ ฅ๊ฐ’์ด ๋จ, return x*y ์— ์˜ํ•ด ๋ฐ˜ํ™˜๊ฐ’ 200์ด ๋ฐ˜ํ™˜๋จ
  5. claculate_rectangle_area(rectangle_x, rectangle_y) ๋Š” 200์œผ๋กœ ์น˜ํ™˜๋˜๊ณ  ์ด ๊ฐ’์ด ํ™”๋ฉด์— ์ถœ๋ ฅ

 

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํ•จ์ˆ˜์™€ ์ˆ˜ํ•™์˜ ํ•จ์ˆ˜

f(x) = x + 1

๋‹ค์Œ์˜ ๋ฌธ์ œ๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ‘œํ˜„ํ•˜๊ธฐ

๐Ÿ’ก f(x) = 2x + 7, g(x) = x^2 ์ด๊ณ , x = 2 ์ผ ๋•Œ, f(x) + g(x) + f(g(x)) + g(f(x)) ์˜ ๊ฐ’์€ ? f(2) = 11, g(2) = 4, f(g(x)) =15, g(f(x)) = 121 → 11 +4 + 15 + 121 = 151

 

ํ•จ์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” f(x), g(x)

def f(x)
    return 2 * x + 7
def g(x)
    return x ** 2
x=2
print(f(x) + g(x) + f(g(x)) + g(f(x)))
#์ถœ๋ ฅ ๊ฒฐ๊ณผ

151

→ f(x), g(x), f(g(x)), g(f(x)) ๊ฐ€ ๊ฐ๊ฐ 11, 4, 15, 121 ๋กœ ์น˜ํ™˜๋˜์–ด ํ•ฉ์ด ์ถœ๋ ฅ๋จ

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

ํ•จ์ˆ˜์˜ ์ž…๋ ฅ๊ฐ’์€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๊ตฌ๋ถ„๋˜์–ด ์‚ฌ์šฉ

def f(x):
    return 2 * x + 7

print(f(2))
#์ถœ๋ ฅ๊ฒฐ๊ณผ

11
  • ‘def f(x):’์˜ x๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋ผ๊ณ  ํ•จ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜์˜ ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜์— ์žˆ์–ด ์–ด๋–ค ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์ •์˜ํ•˜๋Š” ๊ฒƒ
  • ํ•จ์ˆ˜์˜ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•œ ์ •์˜๋ฅผ ํ•จ์ˆ˜ ์‚ฌ์šฉ์— ์žˆ์–ด ์ธํ„ฐํŽ˜์ด์Šค๋ผ๊ณ  ์ •์˜
  • ์ธ์ˆ˜๋Š” ์‹ค์ œ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€์ž…๋˜๋Š” ๊ฐ’
  • f(2)์—์„œ 2๊ฐ€ ์ธ์ˆ˜์— ํ•ด๋‹น

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

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

๋ฐ˜ํ™˜๊ฐ’ ์œ ๋ฌด/๋งค๊ฐœ๋ณ€์ˆ˜ ์œ ๋ฌด |๋งค๊ฐœ๋ณ€์ˆ˜ ์—†์Œ                                   |๋งค๊ฐœ๋ณ€์ˆ˜ ์žˆ์Œ

๋ฐ˜ํ™˜๊ฐ’ ์—†์Œ ํ•จ์ˆ˜ ๋‚ด๋ถ€ ๋ช…๋ น๋ฌธ๋งŒ ์ˆ˜ํ–‰ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…๋ น๋ฌธ๋งŒ ์ˆ˜ํ–‰
๋ฐ˜ํ™˜๊ฐ’ ์žˆ์Œ ๋งค๊ฐœ๋ณ€์ˆ˜ ์—†์ด ๋ช…๋ น๋ฌธ์„ ์ˆ˜ํ–‰ํ•œ ํ›„ ๊ฒฐ๊ณผ๊ฐ’ ๋ฐ˜ํ™˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…๋ น๋ฌธ์„ ์ˆ˜ํ–‰ํ•œ ํ›„ ๊ฒฐ๊ณผ๊ฐ’ ๋ฐ˜ํ™˜
def a_rectangle_area():      #๋งค๊ฐœ๋ณ€์ˆ˜ X, ๋ฐ˜ํ™˜๊ฐ’ X
    print(5*7)
def b_rectangle_area(x,y):   #๋งค๊ฐœ๋ณ€์ˆ˜ O, ๋ฐ˜ํ™˜๊ฐ’ X
    print(x*y)
def c_rectangle_area():      #๋งค๊ฐœ๋ณ€์ˆ˜ X, ๋ฐ˜ํ™˜๊ฐ’ O
    return(5*7)
def d_rectangle_area(x,y):   #๋งค๊ฐœ๋ณ€์ˆ˜ O, ๋ฐ˜ํ™˜๊ฐ’ O
    return(x*y)

a_rectangle_area()
b_rectangle_area(5,7)
print(c_rectangle_area())
print(d_rectangle_area(5,7))
#์ถœ๋ ฅ ๊ฒฐ๊ณผ

35
35
35
35
  • a_rectangle_area() : ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋ฐ˜ํ™˜๊ฐ’์ด ๋ชจ๋‘ ์—†๋Š” ๊ฒฝ์šฐa_rectangle_area()๊ฐ€ 35๋กœ ์น˜ํ™˜๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ณ , ๋ฐ˜ํ™˜๊ฐ’์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ํ•จ์ˆ˜ ์ž์ฒด๋Š” none ๊ฐ’์„ ๊ฐ€์ง
  • ๋Œ€์‹  ๋‚ด๋ถ€ ํ•จ์ˆ˜์ธ print()ํ•จ์ˆ˜๋กœ ์ธํ•ด 35 ์ถœ๋ ฅ
  • ์ž…๋ ฅ๊ฐ’๊ณผ ๋ฐ˜ํ™˜๊ฐ’์ด ์—†์ง€๋งŒ print(5*7)๋กœ ์ธํ•ด 35 ์ถœ๋ ฅ
  • b_rectangle_area() : ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ x,y๋ฅผ ๋„˜๊ฒจ๋ฐ›๊ณ , ๊ทธ ๊ฐ’์„ ๊ณ„์‚ฐํ•˜์—ฌ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜b_rectangle_area(5,7) ์ž์ฒด๊ฐ€ 35๋กœ ์น˜ํ™˜๋˜๋Š” ๊ฒƒ์€ ์•„๋‹˜
  • ๋ฐ˜ํ™˜์ด ์—†์œผ๋ฉด ํ•ด๋‹น ํ•จ์ˆ˜๋Š” none์œผ๋กœ ์น˜ํ™˜
  • ๋ฐ˜ํ™˜๊ฐ’์ด ์—†์–ด b_rectangle_area(5,7) ์ด๋ผ๊ณ  ์‹คํ–‰์‹œ์ผœ์•ผ 35๊ฐ€ ์ถœ๋ ฅ๋˜๋Š”๊ฒƒ
  • c_rectangle_area(), d_rectangle_area() : ๋ฐ˜ํ™˜๊ฐ’์ด ์žˆ๋Š” ๊ฒฝ์šฐ๋‘ ํ•จ์ˆ˜ ๋ชจ๋‘ return ๋ฌธ์œผ๋กœ ์ธํ•ด 35๋กœ ์น˜ํ™˜๋˜๋Š”๊ฒƒ
  • return์ด ์žˆ๋Š” ๊ฒฝ์šฐ, ์ฆ‰ ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ทธ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ณณ์—์„œ ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’์„ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅ
  • ํ•จ์ˆ˜ ์•ˆ์—์„œ print() ํ•จ์ˆ˜๋ฅผ ์ˆ˜ํ–‰์‹œํ‚ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ print() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋Š”๊ฒƒ

๐Ÿ’ก → ๋ชจ๋‘ ๊ฐ™์€ ๊ฐ’์„ ์ถœ๋ ฅํ•˜์ง€๋งŒ ํ•จ์ˆ˜์˜ ํ˜•ํƒœ์— ๋”ฐ๋ผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‹ค๋ฅด๋‹ค.

 

 

ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋ฐฉ์‹

def f(x)
    y=x
    x=5
    return y*y

x = 3
print(f(x))
print(x)
#์ถœ๋ ฅ ๊ฒฐ๊ณผ

9
3
  • ํ•จ์ˆ˜ ๋ฐ–์— ์žˆ๋Š” ๋ณ€์ˆ˜ x์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์™€ ํ•จ์ˆ˜ ์•ˆ์— ์žˆ๋Š” ๋ณ€์ˆ˜ x์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ๊ฐ™์€์ง€ ๋‹ค๋ฅธ์ง€ ํ™•์ธํ•  ํ•„์š”๊ฐ€ ์žˆ์Œ

ํ•จ์ˆ˜๊ฐ€ ๋ณ€์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹

์ข…๋ฅ˜                                          ์„ค๋ช…

๊ฐ’์— ์˜ํ•œ ํ˜ธ์ถœ (call by value) - ํ•จ์ˆ˜์— ์ธ์ˆ˜๋ฅผ ๋„˜๊ธธ ๋•Œ ๊ฐ’๋งŒ ๋„˜๊น€ - ํ•จ์ˆ˜ ๋‚ด๋ถ€์˜ ์ธ์ˆ˜๊ฐ’ ๋ณ€๊ฒฝ ์‹œ ํ˜ธ์ถœ๋œ ๋ณ€์ˆ˜์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Œ
์ฐธ์กฐ ํ˜ธ์ถœ (call by reference) - ํ•จ์ˆ˜์— ์ด์ˆ˜๋ฅผ ๋„˜๊ธธ ๋•Œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋„˜๊น€ - ํ•จ์ˆ˜ ๋‚ด๋ถ€์˜ ์ธ์ˆ˜๊ฐ’ ๋ณ€๊ฒฝ ์‹œ ํ˜ธ์ถœ๋œ ๋ณ€์ˆ˜๊ฐ’๋„ ๋ณ€๊ฒฝ๋จ
  • ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ - ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋˜๋Š” ๊ณต๊ฐ„, ๊ณต๊ฐ„ ์ž์ฒด์— ์ƒˆ๋กœ์šด ๊ฐ’์„ ํ• ๋‹นํ•˜๋ฉด ๊ทธ ๊ณต๊ฐ„์„ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š” ๋‹ค๋ฅธ ๋ณ€์ˆ˜์—๋„ ์˜ํ–ฅ์„ ์คŒ
  • ๊ฐ์ฒด ํ˜ธ์ถœ ๋ฐฉ์‹ - ํŒŒ์ด์ฌ์—์„œ๋Š” ๊ฐ์ฒด์˜ ์ฃผ์†Œ๋ฅผ ํ•จ์ˆ˜๋กœ ๋„˜๊ธฐ๊ธฐ ๋•Œ๋ฌธ์— ์ „๋‹ฌ๋œ ๊ฐ์ฒด์˜ ๊ฐ’์— ๋ณ€๊ฒฝ์ด ์žˆ์„ ๊ฒฝ์šฐ, ์ฆ‰ ์ƒˆ๋กœ์šด ๊ฐ’์„ ํ• ๋‹นํ•˜๊ฑฐ๋‚˜ ํ•ด๋‹น ๊ฐ์ฒด๋ฅผ ์ง€์šธ ๋•Œ๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์ง€๋งŒ ๋‹จ์ˆœํžˆ ํ•ด๋‹น ๊ฐ์ฒด์— ๊ฐ’์„ ์ถ”๊ฐ€ํ•  ๋•Œ๋Š” ์˜ํ–ฅ์„ ์ค€๋‹ค.
def spam(eggs):
    eggs.append(1)  #๊ธฐ์กด ๊ฐ์ฒด์˜ ์ฃผ์†Œ๊ฐ’์— [1] ์ถ”๊ฐ€
    eggs = [2,3]    #์ƒˆ๋กœ์šด ๊ฐ์ฒด ์ƒ์„ฑ

ham = [0]
spam(ham)
print(ham)
#์ถœ๋ ฅ๊ฒฐ๊ณผ

[0,1]
  1. ham ์ด๋ผ๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ํ•จ์ˆ˜ spam์— ham์„ ์ธ์ˆ˜๋กœ ์ž…๋ ฅํ•œ๋‹ค. ์ด๋•Œ ํ•จ์ˆ˜ ์•ˆ์—์„œ๋Š” ์ด๋ฆ„์ด ham์—์„œ eggs๋กœ ๋ฐ”๋€๋‹ค. ham๊ณผ eggs๋Š” ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ๋ฐฉ์‹์œผ๋กœ ๊ฐ์ฒด๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๊ฐ™์€ ์ฃผ์†Œ๋ฅผ ๊ณต์œ ํ•œ๋‹ค.
  2. eggs.append(1)์— ์˜ํ•ด ํ•ด๋‹น ๋ฆฌ์ŠคํŠธ์— 1์ด ์ถ”๊ฐ€๋˜๋ฉด ham๊ณผ eggs ๋ชจ๋‘ ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค.
  3. eggs = [2,3]์œผ๋กœ ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค. ๊ทธ๋ž˜์„œ ๋”์ด์ƒ ham๊ณผ eggs๊ฐ€ ๊ฐ™์€ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค์ง€ ์•Š๊ณ  eggs๋Š” ์ž๊ธฐ๋งŒ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.
  4. ๊ทธ๋ฆฌ๊ณ  ํ•จ์ˆ˜๋ฅผ ๋น ์ ธ๋‚˜์™€ print(ham)์ด ์‹คํ–‰๋˜๋ฉด eggs.append(1)์— ์˜ํ•ด ์ถ”๊ฐ€๋œ [0,1] ์ด ํ™”๋ฉด์— ์ถœ๋ ฅ๋œ๋‹ค.

์ด๊ฒƒ์ด ๊ฐ์ฒด ํ˜ธ์ถœ์ด๋ผ๋Š” ํŒŒ์ด์ฌ์˜ ํ•จ์ˆ˜ ๋‚ด๋ถ€ ๋ณ€์ˆ˜ ํ˜ธ์ถœ ๋ฐฉ์‹์ด๋‹ค.

  • ์ƒˆ๋กœ์šด ๊ฐ’์„ ํ• ๋‹นํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” ๊ธฐ์กด์— ๋„˜์–ด์˜จ ์ธ์ˆ˜ ๊ฐ์ฒด์˜ ์ฃผ์†Œ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹

 

๋ณ€์ˆ˜์˜ ์‚ฌ์šฉ ๋ฒ”์œ„

 

  • ๋ณ€์ˆ˜๊ฐ€ ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฒ”์œ„
  • ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ์ง€ ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด์—์„œ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ์ง€ ๊ทธ ๋ฒ”์œ„๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ทœ์น™

์ง€์—ญ ๋ณ€์ˆ˜ (local variable) : ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ๋งŒ ์‚ฌ์šฉ

์ „์—ญ ๋ณ€์ˆ˜ (global variable) : ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด์—์„œ ์‚ฌ์šฉ

def test(t)
    print(x)
    t = 20
    print("In Function:", t)

x = 10
test(x)
print("In Main:", x)
print("In Main:", t)
#์ถœ๋ ฅ ๊ฒฐ๊ณผ

10
In function : 20
In Main : 10
Traceback (most recent call last):
    File "scoping_rule.py", line 9, in <module>
        print ("In Main:", t)
NameError: name 't' is not defined
  1. ํ”„๋กœ๊ทธ๋žจ์ด ๊ฐ€์žฅ ๋จผ์ € ์‹œ์ž‘๋˜๋Š” ์ง€์ ์€ x = 10 ์œผ๋กœ x๋Š” test(x) ํ•จ์ˆ˜์˜ ์ธ์ˆ˜๋กœ ๋„˜์–ด๊ฐ„๋‹ค.
  2. ๊ทธ๋ ‡๋‹ค๋ฉด print(x)์˜ x๋Š” ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์žฌ์ •์˜๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ ๋ฉ”์ธ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ •์˜ํ•œ x = 10์˜ x๋ฅผ ๋œปํ•œ๋‹ค. ์ฆ‰, ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ „์—ญ ๋ณ€์ˆ˜์ด๋‹ค. ํ•จ์ˆ˜ ๋‚ด๋ถ€์— ์žˆ๋Š” t๋Š” test(x) ํ•จ์ˆ˜์˜ x๋ฅผ t๋กœ ์น˜ํ™˜ํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค. ์ฆ‰, ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ๋Š” x๋ฅผ ๋”ฐ๋กœ ์„ ์–ธํ•œ ์ ์€ ์—†๊ณ , t ๋ฅผ ์„ ์–ธํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.
  3. 3ํ–‰์˜ t = 20์— ์˜ํ•ด t์— 20์ด ํ• ๋‹น๋˜๊ณ , ์‹ค์ œ๋กœ 4ํ–‰ print(“In Function:", t)์˜ ๊ฒฐ๊ณผ๋กœ In Function: 20์ด ํ™”๋ฉด์— ์ถœ๋ ฅ ๋˜๋Š” ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
  4. ํ•˜์ง€๋งŒ ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋˜๊ณ  ์ฝ”๋“œ์— 9ํ–‰์˜ print("In Main:", t)๊ฐ€ ์‹คํ–‰๋˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค. t๊ฐ€ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ง€์—ญ ๋ณ€์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ž˜์„œ ๋ฉ”์ธ ํ•จ์ˆ˜์—์„œ t ๋ณ€์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด๋Ÿฌํ•œ ์ฐจ์ด๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋ฉด ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๋Š” ๋ฐ ์–ด๋ ค์›€์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค.
def f():
    s = "I love London!"
    print(s)

s = "I love Paris!"
f()
print(s)
#์ถœ๋ ฅ๊ฒฐ๊ณผ

I love London!
I love Paris!
  1. ๋ณ€์ˆ˜ s๋Š” f( ) ํ•จ์ˆ˜์˜ ๋‚ด๋ถ€์—์„œ๋„ ์‚ฌ์šฉ๋˜๊ณ  ์™ธ๋ถ€์—์„œ๋„ ์‚ฌ์šฉ๋œ๋‹ค.
  2. ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ์ž‘๋˜์ž๋งˆ์ž s์—๋Š” 'I love Paris!' ๋ผ๋Š” ๊ฐ’์ด ํ• ๋‹น๋œ๋‹ค.
  3. ํ•˜์ง€๋งŒ ๊ทธ ํ›„ ํ•จ์ˆ˜ ๋‚ด๋ถ€๋กœ ์ฝ”๋“œ์˜ ์‹คํ–‰์ด ์˜ฎ๊ฒจ๊ฐ€ ๋‹ค์‹œ s์— ‘I love London!' ๊ฐ’์ด ์ €์žฅ๋˜๊ณ , ๊ทธ ๊ฐ’์ด ๋จผ์ € ์ถœ๋ ฅ๋œ๋‹ค.
  4. ํ•จ์ˆ˜ ์™ธ๋ถ€์— ์žˆ๋Š” ๋ณ€์ˆ˜ s์˜ ๊ฐ’์€ print(s)์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋กœ 'I love Paris!'์ด ์ถœ๋ ฅ๋˜์–ด ๋ฐ”๋€Œ์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 ๐Ÿ’ก ํ•จ์ˆ˜ ๋‚ด๋ถ€์™€ ์™ธ๋ถ€์— ์žˆ๋Š” ๋ณ€์ˆ˜ s๋Š” ๊ฐ™์€ ์ด๋ฆ„์„ ๊ฐ€์กŒ์ง€๋งŒ ์‚ฌ์‹ค ๋‹ค๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ์ „ํ˜€ ๋‹ค๋ฅธ ๋ณ€์ˆ˜๋‹ค. ๋”ฐ๋ผ์„œ ํ•จ์ˆ˜ ๋‚ด๋ถ€์˜ s๋Š” ํ•ด๋‹น ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋™์•ˆ์—๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋‹ค๊ฐ€ ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋˜๋Š” ์ˆœ๊ฐ„ ์‚ฌ๋ผ์ง„๋‹ค. ๋‹น์—ฐํžˆ ํ•จ์ˆ˜ ์™ธ๋ถ€์˜ s์™€๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ๋‹ฌ๋ผ ์„œ๋กœ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.

ํ•จ์ˆ˜ ๋‚ด๋ถ€์˜ ๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜ ์™ธ๋ถ€์˜ ๋ณ€์ˆ˜๊ฐ€ ๊ฐ™์€ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ฐ–๋Š” ๊ฐ™์€ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•

  • global ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ
def f():
    global s
    s = "I love London!"
    print(s)

s = "I love Paris!"
f()
print(s)
#์ถœ๋ ฅ๊ฒฐ๊ณผ

I love London!
I love London!
  • ๊ธฐ์กด ์ฝ”๋“œ์—์„œ ๋ณ€๊ฒฝ๋œ ๊ฒƒ → ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ global s ์ฝ”๋“œ
  • ๊ธฐ์กด์˜ s์—๋Š” ‘I love Paris!’๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋Š”๋ฐ f() ํ•จ์ˆ˜ ๋‚ด๋ถ€์˜ ์ฝ”๋“œ๊ฐ€ ์ˆ˜ํ–‰๋˜๋Š” ์ˆœ๊ฐ„ global s๊ฐ€ ์„ ์–ธ๋˜์–ด ํ•จ์ˆ˜ ์™ธ๋ถ€์˜ s, ์ฆ‰ ์ „์—ญ ๋ณ€์ˆ˜ s์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

๐Ÿ’ก ๋”ฐ๋ผ์„œ ํ•จ์ˆ˜ ๋‚ด๋ถ€์™€ ์™ธ๋ถ€์— ์žˆ๋Š” s๋Š” ๊ฐ™์€ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉ

ํ•จ์ˆ˜ ์‹ค์Šต

์ง์ ‘ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ๋จธ๋ฆฟ์†์œผ๋กœ ์‹คํ–‰ํ•œ ๋’ค ๊ฒฐ๊ณผ๊ฐ’ ๋งž์ถ”๊ธฐ

def calculate(x, y):
    total = x + y        # ์ƒˆ๋กœ์šด ๊ฐ’์ด ํ• ๋‹น๋˜์–ด ํ•จ์ˆ˜ ๋‚ด๋ถ€ total์€ ์ง€์—ญ ๋ณ€์ˆ˜๊ฐ€ ๋จ
    print("In Function")
    print("a:", str(a), "b:", str(b), "a + b:", str(a + b), "total:", str(total))
    return total

a = 5                        # a์™€ b๋Š” ์ „์—ญ ๋ณ€์ˆ˜
b = 7
total = 0                    # ์ „์—ญ ๋ณ€์ˆ˜ total
print("In Program - 1")
print("a:", str(a), "b:", str(b), "a + b:", str(a + b))

sum = calculate (a, b)
print('After Calculation")
print(“Total:", str(total), " Sum:", str(sum))
# ์ง€์—ญ ๋ณ€์ˆ˜๋Š” ์ „์—ญ ๋ณ€์ˆ˜์— ์˜ํ–ฅ์„ ์ฃผ์ง€์•Š์Œ
  • ์‹คํ–‰ ๊ฒฐ๊ณผ ์˜ˆ์ƒํ•ด๋ณด๊ธฐ
In Program - 1
a: 5 b: 7 a + b: 12
In Function
a: 5 b: 7 a + b: 12 total: 12
After Calculation
Total: 0 Sum: 12

์žฌ๊ท€ ํ•จ์ˆ˜ 

  • ์ž๊ธฐ ์ž์‹ ์„ ๋‹ค์‹œ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜

  • ํŒฉํ† ๋ฆฌ์–ผ ํ•จ์ˆ˜ : ์ •ํ™•ํžˆ๋Š” ‘n!’๋กœ ํ‘œ์‹œํ•˜๊ณ  n! = n x (n-1)! ๋กœ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Œ
  • ์ž์‹ ์˜ ์ˆซ์ž์—์„œ 1์”ฉ ๋นผ๋ฉด์„œ ๊ณฑํ•˜๋Š” ํ˜•์‹์œผ๋กœ ์ ํ™”์‹์ด๋ผ๊ณ  ํ•จ
def factorial (n):
    if n == 1:
        return 1 
    else:
        return n * factorial (n - 1)

print(factorial(int(input ("Input Number for Factorial Calculation: "))))
#์ถœ๋ ฅ ๊ฒฐ๊ณผ

Input Number for Factorial Calculation: 5
120
  • factorial() ํ•จ์ˆ˜๋Š” n์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์ž…๋ ฅ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋„˜๊ฒจ๋ฐ›์€ ํ›„ n==1 ์ด ์•„๋‹๋•Œ๊นŒ์ง€ ์ž…๋ ฅ๋œ n๊ณผ n-1์„ ์ž…๋ ฅ๊ฐ’์œผ๋กœ ๋‹ค์‹œ factorial() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๋ฐ˜ํ™˜๋œ ๊ฐ’๊ณผ ๊ณฑํ•œ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ 5๋ฅผ ์ž…๋ ฅํ•œ ๊ฒฝ์šฐ

๐Ÿ’ก 5 * factorial(5 - 1)

= 5 * 4 * factorial (4 - 1)

= 5 * 4 * 3 * factorial (3 - 1)

= 5 * 4 * 3 * 2 * factorial (2 - 1)

=5 * 4 * 3 * 2 * 1

 

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

 

ํŒŒ์ด์ฌ์—์„œ ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

์ข…๋ฅ˜                             ๋‚ด์šฉ

ํ‚ค์›Œ๋“œ ์ธ์ˆ˜ ํ•จ์ˆ˜์˜ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ง€์ •ํ•œ ๋ณ€์ˆ˜๋ช…์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•จ์ˆ˜์˜ ์ธ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•
๋””ํดํŠธ ์ธ์ˆ˜ ๋ณ„๋„์˜ ์ธ์ˆ˜๊ฐ’์ด ์ž…๋ ฅ๋˜์ง€ ์•Š์„ ๋•Œ ์ธํ„ฐํŽ˜์ด์Šค ์„ ์–ธ์—์„œ ์ง€์ •ํ•œ ์ดˆ๊นƒ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
๊ฐ€๋ณ€ ์ธ์ˆ˜ ํ•จ์ˆ˜์˜ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ง€์ •ํ•œ ๋ณ€์ˆ˜ ์ด์™ธ์˜ ์ถ”๊ฐ€ ๋ณ€์ˆ˜๋ฅผ ํ•จ์ˆ˜์— ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ๋ฐฉ๋ฒ•
ํ‚ค์›Œ๋“œ ๊ฐ€๋ณ€ ์ธ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์„ ๋”ฐ๋กœ ์ง€์ •ํ•˜์ง€ ์•Š๊ณ  ์ž…๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ•

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

 

  • ํ•จ์ˆ˜์— ์ž…๋ ฅ๋˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๋ณ€์ˆ˜๋ช…์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•จ์ˆ˜์˜ ์ธ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•
def print _something (my name, your _name):
    print("Hello {0}, My name is {1}".format (your _name, my name))

print_something ("Sungchul", "TEAMLAB")
print_something(your _name = "TEAMLAB", my_name = "Sungchul")
#์ถœ๋ ฅ ๊ฒฐ๊ณผ

Hello TEAMLAB, My name is Sungchul
Hello TEAMLAB, My name is Sungchul
  • print _something() ํ•จ์ˆ˜๋Š” (my name, your _name)์ด๋ผ๋Š” ์ž…๋ ฅ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐ€์ง
  • print_something ("Sungchul", "TEAMLAB") ์—์„œ "Sungchul"์€ my name ์—, "TEAMLAB"์€ your _name์— ํ• ๋‹น
  • print_something(your _name = "TEAMLAB", my_name = "Sungchul") → ํ•จ์ˆ˜์˜ ์ธ์ˆ˜์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ๊ฐ์˜ ๋ณ€์ˆ˜๋ช…์„ ๋ช…์‹œํ•จ์œผ๋กœ์จ ํ•ด๋‹น ๋ณ€์ˆ˜์— ๊ฐ’์ด ํ• ๋‹น๋  ์ˆ˜ ์žˆ๋„๋ก ์ฒ˜๋ฆฌ
  • ์ฆ‰ ์ž…๋ ฅ๋˜๋Š” ์ˆœ์„œ์— ์ƒ๊ด€์—†์ด "Sungchul"์€ my name ์—, "TEAMLAB"์€ your _name์— ํ• ๋‹น๋˜์–ด 2๊ฐ€์ง€ ํ˜ธ์ถœ ์ฝ”๋“œ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๊ฐ€ ๋™์ผํ•˜๊ฒŒ ์ถœ๋ ฅ

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

  • ๋งค๊ฐœ๋ณ€์ˆ˜์— ๊ธฐ๋ณธ๊ฐ’์„ ์ง€์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ณ  ์•„๋ฌด๋Ÿฐ ๊ฐ’๋„ ์ธ์ˆ˜๋กœ ๋„˜์–ด๊ฐ€์ง€ ์•Š์„ ๋•Œ ์ง€์ •๋œ ๊ธฐ๋ณธ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹
def print_something_2(my _name, your _name = "TEAMLAB"):
    print("Hello {0}, My name is {1}".format(your_name, my _name))

print something 2("Sungchul", "TEAMLAB")
print_something_2("Sungchul")
#์ถœ๋ ฅ ๊ฒฐ๊ณผ

Hello TEAMLAB, My name is Sungchul
Hello TEAMLAB, My name is Sungchul
  • def print_something_2(my _name, your _name = "TEAMLAB") ์—์„œ ํ•จ์ˆ˜์˜ ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜
  • your_name ๋งค๊ฐœ๋ณ€์ˆ˜์—๋Š” ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ "TEAMLAB” ์ง€์ • → your_name ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋ณ„๋„์˜ ๊ฐ’์„ ํ• ๋‹นํ•˜์ง€ ์•Š์•„๋„ ํ•จ์ˆ˜ ์ž‘๋™
  • print_something_2("Sungchul") → ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ 2๊ฐœ์ธ ๋ฐ๋„ ์ธ์ˆ˜๋ฅผ ํ•˜๋‚˜๋งŒ ์ž…๋ ฅ → ์ž…๋ ฅํ•œ ๊ฐ’์ด ์ฒซ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜ my_name์— ํ• ๋‹น๋˜๊ณ  your_name์—๋Š” ๋””ํดํŠธ ์ธ์ˆ˜๋กœ ์ง€์ •๋œ "TEAMLAB"์ด ํ• ๋‹น
  • ๊ฒฐ๊ตญ ๋‘ ์ฝ”๋“œ์˜ ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ™์Œ

 

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

  • ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐœ์ˆ˜๋ฅผ ์ •ํ•˜์ง€ ์•Š์•„์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์— ๊ฐ€๋ณ€์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉ
    • ์˜ˆ๋ฅผ ๋“ค์–ด ๊ณ ๊ฐ์ด ๋ฌผ๊ฑด์„ ์–ผ๋งˆ๋‚˜ ๊ตฌ๋งคํ• ์ง€ ๋ชจ๋ฅด๋Š” ๋งˆํŠธ ๊ณ„์‚ฐ๊ธฐ์—์„œ ํ•ฉ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์—ฐ์‚ฐ
    • (asterisk๋ผ๊ณ  ๋ถ€๋ฆ„)๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, *๋Š” ํŒŒ์ด์ฌ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ณฑ์…ˆ ๋˜๋Š” ์ œ๊ณฑ ์—ฐ์‚ฐ ์™ธ์—๋„ ๋ณ€์ˆ˜๋ฅผ ๋ฌถ์–ด์ฃผ๋Š” ๊ฐ€๋ณ€ ์ธ์ˆ˜๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉ
def asterisk_test(a, b, *args):
    return a + b + sum(args)

print(asterisk_test(1, 2, 3, 4, 5))
#์ถœ๋ ฅ ๊ฒฐ๊ณผ

15
  • asterisk_test() ํ•จ์ˆ˜๋Š” ๋ณ€์ˆ˜ a,b๋ฅผ ๋„˜๊ฒจ๋ฐ›๊ณ  ๋‚˜๋จธ์ง€๋ฅผ *args๋กœ ๋„˜๊ฒจ๋ฐ›๋Š”๋‹ค.
  • asterisk_test(1,2,3,4,5) → 1,2๋Š” ๊ฐ๊ฐ a,b์— ํ• ๋‹น, ๋‚˜๋จธ์ง€ ์ธ์ˆ˜์ธ 3,4,5๊ฐ€ ๋ชจ๋‘ *args์— ํ• ๋‹น
def asterisk_test(a, b, *args):
    print(args)

print(asterisk_test(1, 2, 3, 4, 5))
#์ถœ๋ ฅ ๊ฒฐ๊ณผ

(3, 4, 5)
NONE
  • ๊ด„ํ˜ธ๋กœ ์ถœ๋ ฅ๋˜๋Š” ์ž๋ฃŒํ˜•์„ ํŠœํ”Œ ์ž๋ฃŒํ˜•์ด๋ผ๊ณ  ํ•จ (๋ฆฌ์ŠคํŠธ ์ž๋ฃŒํ˜•์ฒ˜๋Ÿผ ์ธ๋ฑ์Šค๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒํ˜•)
  • ๊ฐ€๋ณ€์ธ์ˆ˜ *๋Š” ์ผ๋ฐ˜์ ์ธ ํ‚ค์›Œ๋“œ ์ธ์ˆ˜์— ๋Œ€ํ•œ ์„ ์–ธ์ด ๋ชจ๋‘ ๋๋‚œ ํ›„ ๋งˆ์ง€๋ง‰์— ์„ ์–ธ๋˜์–ด์•ผ ํ•จ
  • ๋ฆฌ์ŠคํŠธ์™€ ๋น„์Šทํ•œ ํŠœํ”Œ ํ˜•ํƒœ๋กœ ํ•จ์ˆ˜ ์•ˆ์—์„œ ์‚ฌ์šฉ๋˜์–ด ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ args[0], args[1] ๋“ฑ์˜ ํ˜•ํƒœ๋กœ ๋ณ€์ˆ˜์— ์ ‘๊ทผ ๊ฐ€๋Šฅ
def asterisk_test_2(*args):
    x๏ผŒ y, *z = args
    return x, y, z

print(asterisk_test_2(3, 4, 5))
#์ถœ๋ ฅ ๊ฒฐ๊ณผ

(3,4,[5])
  • ์ž…๋ ฅ๋ฐ›์€ ๊ฐ€๋ณ€ ์ธ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์•ˆ๋‹ค๋ฉด x, y, z* = args ์ฒ˜๋Ÿผ ์–ธํŒจํ‚น ๊ฐ€๋Šฅ
  • *z ๊ฐ€ ์•„๋‹Œ ์ƒํƒœ์—์„œ asterisk_test_2(3,4,5,10,20)์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์˜ค๋ฅ˜ ๋ฐœ์ƒ → ์–ธํŒจํ‚น์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ

์–ธํŒจํ‚น ์ฝ”๋“œ๋ฅผ x, y, *z = args๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ๋ณด๊ธฐ

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

print(asterisk_test_2(3,4,5,10,20)) 
#์ถœ๋ ฅ ๊ฒฐ๊ณผ

(3,4,[5,10,20])
  • *๋Š” ๊ธฐ๋Šฅ์ด ๋‹ค์–‘ํ•˜์—ฌ ์–ธํŒจํ‚นํ•  ๋•Œ๋„ ๊ฐ’์„ ๊ฐ€๋ณ€ ์ธ์ˆ˜์˜ ํ˜•ํƒœ๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ

 

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

  • ๋ณ€์ˆ˜์˜ ์ˆœ์„œ๋Œ€๋กœ ํŠœํ”Œ ํ˜•ํƒœ๋กœ ์ €์žฅ
  • ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๋‹จ์ ์„ ๋ณด์™„
  • ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์„ ๋”ฐ๋กœ ์ง€์ •ํ•˜์ง€ ์•Š๊ณ  ์ž…๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ด์ „ ๊ฐ€๋ณ€ ์ธ์ˆ˜์™€๋Š” ๋‹ฌ๋ฆฌ *๋ฅผ 2๊ฐœ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ‘œํ˜„
  • ์ž…๋ ฅ๋œ ๊ฐ’์€ ํŠœํ”Œ ์ž๋ฃŒํ˜•์ด ์•„๋‹Œ ๋”•์…”๋„ˆ๋ฆฌ ์ž๋ฃŒํ˜•์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
  • ๋ฐ˜๋“œ์‹œ ๋ชจ๋“  ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๋งจ ๋งˆ์ง€๋ง‰, ์ฆ‰ ๊ฐ€๋ณ€ ์ธ์ˆ˜ ๋‹ค์Œ์— ์„ ์–ธ๋˜์–ด์•ผ ํ•จ
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)
#์ถœ๋ ฅ ๊ฒฐ๊ณผ

{'first': 3, 'second': 4, 'third': 5}
First value is 3
Second value is 4
Third value is 5
  • kwargs_test(first = 3, second = 4, third = 5) ์—์„œ 3๊ฐœ์˜ ํ‚ค์›Œ๋“œ๋ฅผ ์ธ์ˆ˜๋กœ ๋„˜๊ฒผ์œผ๋ฏ€๋กœ 2ํ–‰์˜ print() ํ•จ์ˆ˜์—์„œ ์ธ์ˆ˜๋“ค์ด {'first': 3, 'second': 4, 'third': 5}์˜ ํ˜•ํƒœ๋กœ ์ถœ๋ ฅ → ๋”•์…”๋„ˆ๋ฆฌ ์ž๋ฃŒํ˜•
  • ์‹คํ–‰ ๊ฒฐ๊ณผ ๋ณ€์ˆ˜๋ช…๊ณผ ๊ฐ’์ด ์Œ์œผ๋กœ ์ €์žฅ๋จ
  • print("Second value is {second}".format (**kwargs)) ์™€ ๊ฐ™์ด ๋ณ€์ˆ˜๋ช…์„ ๋”ฐ๋กœ ๋ถˆ๋Ÿฌ๋‚ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ print() ํ•จ์ˆ˜๋กœ ์ถœ๋ ฅํ•  ๋•Œ ๋ณ€์ˆ˜ kwargs์— ์žˆ๋Š” second ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๊ฒƒ
  • ์ด๋ฏธ ํ‚ค์›Œ๋“œ ๊ฐ€๋ณ€ ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ‘first = 3, second = 4, third = 5’ ๋ณ€์ˆ˜๋ฅผ ํ•จ์ˆ˜ ์•ˆ์— ๋„ฃ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— second๋ผ๋Š” ๋ณ€์ˆ˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ๋”•์…”๋„ˆ๋ฆฌ ์ž๋ฃŒํ˜• ๋ณ€์ˆ˜์— *๋ฅผ 2๊ฐœ ๋ถ™์ด๋ฉด ๊ฐœ๋ณ„ ๋ณ€์ˆ˜๋กœ ํ’€๋ฆฌ๋ฉด์„œ ํ•จ์ˆ˜์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์Œ

์ธํ„ฐํ”„๋ฆฌํ„ฐ์˜ ํ•ด์„

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

 

์ •๋ฆฌ

  • ๋งค๊ฐœ๋ณ€์ˆ˜, ๊ฐ€๋ณ€ ์ธ์ˆ˜, ํ‚ค์›Œ๋“œ ๊ฐ€๋ณ€ ์ธ์ˆ˜๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜๋ฉด ๋งค๊ฐœ๋ณ€์ˆ˜, ๊ฐ€๋ณ€ ์ธ์ˆ˜, ํ‚ค์›Œ๋“œ ๊ฐ€๋ณ€ ์ธ์ˆ˜ ์ˆœ์œผ๋กœ ๊ฐ ๊ฐ’์„ ์ ๋‹นํ•œ ์œ„์น˜์˜ ๋ณ€์ˆ˜์— ํ• ๋‹น
»> 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)
42
{'first': 3, 'second': 4, 'third': 5}
  • 3,4๋Š” ๊ฐ๊ฐ one,two์— ํ• ๋‹น๋˜๊ณ , ๋‚˜๋จธ์ง€ 5,6,7,8,9๋Š” args์—, first = 3, second = 4, third = 5๋Š” ๋”•์…”๋„ˆ๋ฆฌํ˜•์œผ๋กœ kwargs์— ํ• ๋‹น

 

์‹ค์Šต

์‚ฌ๊ฐํ˜•์˜ ๋‘˜๋ ˆ๋ฅผ ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜ ์ •์˜ํ•˜๊ณ  ํ˜ธ์ถœํ•˜๊ธฐ

  • ์‚ฌ๊ฐํ˜•์˜ ์„ธ๋กœ๋Š” 3, ๊ฐ€๋กœ๋Š” 6
  • ์‚ฌ๊ฐํ˜•์˜ ๊ฐ€๋กœ ๋ฐ ์„ธ๋กœ๋Š” ๊ฐ๊ฐ side1,side2 ๋กœ ํ• ๋‹นํ• ๊ฒƒ
  • ํ•จ์ˆ˜๋ช…์€ circum์œผ๋กœ ๋‘˜๋ ˆ๋Š” squ ๋ณ€์ˆ˜์— ํ• ๋‹นํ• ๊ฒƒ

์ •๋‹ต

def circum(side1, side2):
    result = side1*2 + side2*2
    return result
squ = circum(3,6)
print(squ)
  1. circum ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๊ณ  ์ธ์ˆ˜๋กœ side1๊ณผ side2๋ฅผ ํ• ๋‹นํ•˜์—ฌ ์ค€๋‹ค.
  2. result๋ฅผ ์ด์šฉํ•˜์—ฌ ์‚ฌ๊ฐํ˜•์˜ ๋‘˜๋ ˆ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์‹์„ ํ• ๋‹นํ•˜์—ฌ ์ค€๋‹ค.
  3. squ ๋ณ€์ˆ˜์— circum ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  side1์€ 3, side2๋Š” 6์œผ๋กœ ํ• ๋‹นํ•˜์—ฌ ์ค€๋‹ค.
  4. ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ฒฐ๊ณผ ๊ฐ’์ด squ์— ํ• ๋‹น๋˜๊ณ  ์ถœ๋ ฅํ•œ๋‹ค.

 

TV ์Œ๋Ÿ‰์˜ ํ˜„์žฌ ์Œ๋Ÿ‰์€ 1์ด๊ณ , ์ฆ๊ฐ€์‹œํ‚ฌ ๋งŒํผ์˜ ์Œ๋Ÿ‰์„ ์ž…๋ ฅํ•˜๋ฉด ์Œ๋Ÿ‰์ด ์ฆ๊ฐ€ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๊ณ  ํ˜ธ์ถœํ•˜๊ธฐ

  • volume ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ• ๊ฒƒ
  • ํ˜„์žฌ ์Œ๋Ÿ‰ → now_vol
  • num์— ์ฆ๊ฐ€์‹œํ‚ฌ๋งŒํผ์˜ ์Œ๋Ÿ‰์„ ์ž…๋ ฅ๋ฐ›๊ธฐ
  • ํ˜„์žฌ ์Œ๋Ÿ‰์€ 3

์ •๋‹ต

def volume(now_vol, num):
    now_vol = now_vol+num
    return now_vol

now_vol = 3
print("ํ˜„์žฌ ์Œ๋Ÿ‰์€ 3์ž…๋‹ˆ๋‹ค.")
num = int(input("์ฆ๊ฐ€์‹œํ‚ฌ๋งŒํผ์˜ ์Œ๋Ÿ‰์„ ์ž…๋ ฅ:"))
print("์ฆ๊ฐ€ ํ›„์˜ ์Œ๋Ÿ‰์€", volume(now_vol,num),"์ž…๋‹ˆ๋‹ค.")
  1. volume ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๊ณ  ํ˜„์žฌ ๋ณผ๋ฅจ์ธ now_volume ๊ณผ ์ฆ๊ฐ€ ์‹œํ‚ฌ ์Œ๋Ÿ‰์ธ num์„ ์ž…๋ ฅ๋ฐ›๋„๋ก ํ•œ๋‹ค.
  2. ํ˜„์žฌ ์Œ๋Ÿ‰์—์„œ ์ฆ๊ฐ€์‹œํ‚ฌ ์Œ๋Ÿ‰์„ ๋”ํ•ด์ฃผ์–ด์•ผ ํ•˜๋ฏ€๋กœ now_vol = now_vol+num ์—ฐ์‚ฐ
  3. now_vol ๋กœ ํ˜„์žฌ ์Œ๋Ÿ‰์„ ์ „์—ญ๋ณ€์ˆ˜๋กœ ํ• ๋‹นํ•˜๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ํ˜„์žฌ ์Œ๋Ÿ‰์„ ์•Œ๋ ค์ค€๋‹ค.
  4. num ๋ณ€์ˆ˜๋ฅผ ์ƒˆ๋กœ ํ• ๋‹นํ•˜์—ฌ ์ฆ๊ฐ€์‹œํ‚ฌ ๋งŒํผ์˜ ์Œ๋Ÿ‰์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.
  5. volume ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ฆ๊ฐ€ ํ›„์˜ ์Œ๋Ÿ‰์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

ํ•จ์ˆ˜์˜ ์ถœ๋ ฅ ๊ฒฐ๊ณผ ์˜ˆ์ƒํ•ด๋ณด๊ธฐ

def func1():
    a=10
    print("func1()์—์„œ a ๊ฐ’:", a)

def func2():
    print("func2()์—์„œ a ๊ฐ’:", a)

a=20
func1()
func2()

์ •๋‹ต

#์ถœ๋ ฅ ๊ฒฐ๊ณผ

func1()์—์„œ a ๊ฐ’ : 10
func2()์—์„œ a ๊ฐ’ : 20
  1. ํ•จ์ˆ˜ func1์—์„œ์˜ ์ง€์—ญ๋ณ€์ˆ˜๋กœ a=10์ด ํ• ๋‹น๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ print() ๋ฌธ์„ ์‹คํ–‰ํ•˜๋ฉด a๊ฐ€ 10์œผ๋กœ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.
  2. ํ•จ์ˆ˜ func2 ์—์„œ๋Š” ์ „์—ญ๋ณ€์ˆ˜๋กœ a= 20 ์ด ํ• ๋‹น๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ print() ๋ฌธ์„ ์‹คํ–‰ํ•˜๋ฉด a๊ฐ€ 20์œผ๋กœ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.