๋ฐ์ดํฐ ๊ณผํ์ ์ํ ํ์ด์ฌ ํ๋ก๊ทธ๋๋ฐ ๊ต์ฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑํ ๊ฐ์์๋ฃ์ ๋๋ค.
ํจ์
์ด๋ค ์ผ์ ์ํํ๋ ์ฝ๋์ ๋ฉ์ด๋ฆฌ, ๋๋ ์ฝ๋์ ๋ฌถ์
ํจ์์ ์ฅ์
- ํ์ํ ๋๋ง๋ค ํธ์ถ ๊ฐ๋ฅ : ํจ์๋ ๋ฐ๋ณต์ ์ผ๋ก ์ํํด์ผ ํ๋ ์ ๋ฌด๋ฅผ ํ๋ฒ๋ง ์์ฑํด ๋๊ณ ํ์ํ ๋๋ง๋ค ํธ์ถํ์ฌ ์ฌ์ฉํ ์ ์๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฝ๋๋ฅผ ์์ ํ ๋ ๊ฐ์ ์์ ์ ์ฌ๋ฌ ๋ฒ ๋ฐ๋ณตํ์ง ์์๋ ๋๋ค.
- ๋ ผ๋ฆฌ์ ์ธ ๋จ์๋ก ๋ถํ ๊ฐ๋ฅ : ํจ์๋ ์ฝ๋๋ฅผ ๋ ผ๋ฆฌ์ ์ธ ๋จ์๋ก ๋๋ ์ ์๋ค. ๊ฐ๋จํ ๋ํ์ ๊ณ์ฐํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋๋ผ๋ ๊ณฑ์ ์ ํ๋ ์ฝ๋, ๋ง์ ์ ํ๋ ์ฝ๋, ๋๋์ ์ ํ๋ ์ฝ๋ ๋ฑ์ผ๋ก ๋๋ ์ ์๋ค.
- ์ฝ๋์ ์บก์ํ : ์บก์ํ๋ ํจ์์ ์ธํฐํ์ด์ค๋ง ์ ์ ์ํ๋ฉด ๋ค๋ฅธ ์ฌ๋์ด ์์ ์ ์ฝ๋๋ฅผ ์ฝ๊ฒ ๊ฐ์ ธ๋ค ์ฌ์ฉํ ์ ์๋ ํน์ง์ด ์๋ค.
ํจ์์ ์ ์ธ
ํ์ด์ฌ์์ ํจ์๋ฅผ ์ ์ธํ๋ ๋ฐฉ๋ฒ
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
- ํจ์๊ฐ ์ ์๋ def๋ ์ ์๋ง ํ๋๊ฒ์ผ๋ก ํจ์๋ง ํ์ผ์ ์ ์ฅํ๊ณ ํ์ด์ฌ ๋ช ๋ น์ผ๋ก ์คํ์์ผฐ์ ๋ ๋ณ๋์ ์ถ๋ ฅ์ด ์ผ์ด๋์ง ์์→ ๋ง์ฝ ํจ์์ ์ ์ธ ๋ถ๋ถ์ ์ฝ๋์ ๋งจ ๋ง์ง๋ง์ ์ ๋ ฅํ๋ค๋ฉด ํด๋น ์ฝ๋ ํธ์ถ์ ์ค๋ฅ๊ฐ ๋ฐ์ → ์๋ฌด๊ฒ๋ ์คํ๋์ง ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ์ค์ ๋ก๋ ํด๋น ์ฝ๋๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ๋ก๋ํ์ฌ ๋ค๋ฅธ ์ฝ๋๋ฅผ ํธ์ถํด ์ฌ์ฉํ ์ ์๋๋ก ์ค๋น ๊ณผ์ ์ ๊ฑฐ์นจ
- rectangle_x = 10 rectangle_y = 20 → 2๊ฐ์ ๋ณ์์ ๊ฐ์ ํ ๋นํ๊ณ ๊ทธ ๊ฐ์ ์ถ๋ ฅ
- claculate_rectangle_area(rectangle_x, rectangle_y) ์ถ๋ ฅ,
- ํจ์๋ฅผ ํธ์ถํ๊ณ rectangle_x ์ rectangle_y ๋ณ์์ ํ ๋น๋ ๊ฐ์ด claculate_rectangle_area ํจ์์ ์ ๋ ฅ๊ฐ์ด ๋จ, return x*y ์ ์ํด ๋ฐํ๊ฐ 200์ด ๋ฐํ๋จ
- 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]
- ham ์ด๋ผ๋ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค๊ณ ํจ์ spam์ ham์ ์ธ์๋ก ์ ๋ ฅํ๋ค. ์ด๋ ํจ์ ์์์๋ ์ด๋ฆ์ด ham์์ eggs๋ก ๋ฐ๋๋ค. ham๊ณผ eggs๋ ํจ์์ ํธ์ถ๋ฐฉ์์ผ๋ก ๊ฐ์ฒด๋ฅผ ํธ์ถํ๊ณ ์์ผ๋ฏ๋ก ๊ฐ์ ์ฃผ์๋ฅผ ๊ณต์ ํ๋ค.
- eggs.append(1)์ ์ํด ํด๋น ๋ฆฌ์คํธ์ 1์ด ์ถ๊ฐ๋๋ฉด ham๊ณผ eggs ๋ชจ๋ ์ํฅ์ ๋ฐ๋๋ค.
- eggs = [2,3]์ผ๋ก ์๋ก์ด ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด์ค๋ค. ๊ทธ๋์ ๋์ด์ ham๊ณผ eggs๊ฐ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค์ง ์๊ณ eggs๋ ์๊ธฐ๋ง์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ํจ์๋ฅผ ๋น ์ ธ๋์ 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
- ํ๋ก๊ทธ๋จ์ด ๊ฐ์ฅ ๋จผ์ ์์๋๋ ์ง์ ์ x = 10 ์ผ๋ก x๋ test(x) ํจ์์ ์ธ์๋ก ๋์ด๊ฐ๋ค.
- ๊ทธ๋ ๋ค๋ฉด print(x)์ x๋ ํจ์ ๋ด๋ถ์์ ์ฌ์ ์๋์ง ์์์ผ๋ฏ๋ก ํจ์๋ฅผ ํธ์ถํ ๋ฉ์ธ ํ๋ก๊ทธ๋จ์์ ์ ์ํ x = 10์ x๋ฅผ ๋ปํ๋ค. ์ฆ, ํ๋ก๊ทธ๋จ ์ ์ฒด์์ ์ฌ์ฉํ ์ ์๋ ์ ์ญ ๋ณ์์ด๋ค. ํจ์ ๋ด๋ถ์ ์๋ t๋ test(x) ํจ์์ x๋ฅผ t๋ก ์นํํ์ฌ ์ฌ์ฉํ๋ค. ์ฆ, ํจ์ ๋ด๋ถ์์๋ x๋ฅผ ๋ฐ๋ก ์ ์ธํ ์ ์ ์๊ณ , t ๋ฅผ ์ ์ธํ์ฌ ์ฌ์ฉํ๋ค.
- 3ํ์ t = 20์ ์ํด t์ 20์ด ํ ๋น๋๊ณ , ์ค์ ๋ก 4ํ print(“In Function:", t)์ ๊ฒฐ๊ณผ๋ก In Function: 20์ด ํ๋ฉด์ ์ถ๋ ฅ ๋๋ ๊ฒ์ผ๋ก ์์ํ ์ ์๋ค.
- ํ์ง๋ง ํจ์๊ฐ ์ข ๋ฃ๋๊ณ ์ฝ๋์ 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!
- ๋ณ์ s๋ f( ) ํจ์์ ๋ด๋ถ์์๋ ์ฌ์ฉ๋๊ณ ์ธ๋ถ์์๋ ์ฌ์ฉ๋๋ค.
- ํ๋ก๊ทธ๋จ์ด ์์๋์๋ง์ s์๋ 'I love Paris!' ๋ผ๋ ๊ฐ์ด ํ ๋น๋๋ค.
- ํ์ง๋ง ๊ทธ ํ ํจ์ ๋ด๋ถ๋ก ์ฝ๋์ ์คํ์ด ์ฎ๊ฒจ๊ฐ ๋ค์ s์ ‘I love London!' ๊ฐ์ด ์ ์ฅ๋๊ณ , ๊ทธ ๊ฐ์ด ๋จผ์ ์ถ๋ ฅ๋๋ค.
- ํจ์ ์ธ๋ถ์ ์๋ ๋ณ์ 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)
- circum ํจ์๋ฅผ ์ ์ํ๊ณ ์ธ์๋ก side1๊ณผ side2๋ฅผ ํ ๋นํ์ฌ ์ค๋ค.
- result๋ฅผ ์ด์ฉํ์ฌ ์ฌ๊ฐํ์ ๋๋ ๋ฅผ ๊ณ์ฐํ๋ ์์ ํ ๋นํ์ฌ ์ค๋ค.
- squ ๋ณ์์ circum ํจ์๋ฅผ ํธ์ถํ๊ณ side1์ 3, side2๋ 6์ผ๋ก ํ ๋นํ์ฌ ์ค๋ค.
- ํจ์ ํธ์ถ ๊ฒฐ๊ณผ ๊ฐ์ด 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),"์
๋๋ค.")
- volume ํจ์๋ฅผ ์ ์ํ๊ณ ํ์ฌ ๋ณผ๋ฅจ์ธ now_volume ๊ณผ ์ฆ๊ฐ ์ํฌ ์๋์ธ num์ ์ ๋ ฅ๋ฐ๋๋ก ํ๋ค.
- ํ์ฌ ์๋์์ ์ฆ๊ฐ์ํฌ ์๋์ ๋ํด์ฃผ์ด์ผ ํ๋ฏ๋ก now_vol = now_vol+num ์ฐ์ฐ
- now_vol ๋ก ํ์ฌ ์๋์ ์ ์ญ๋ณ์๋ก ํ ๋นํ๊ณ ์ฌ์ฉ์์๊ฒ ํ์ฌ ์๋์ ์๋ ค์ค๋ค.
- num ๋ณ์๋ฅผ ์๋ก ํ ๋นํ์ฌ ์ฆ๊ฐ์ํฌ ๋งํผ์ ์๋์ ์ ๋ ฅ๋ฐ๋๋ค.
- 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
- ํจ์ func1์์์ ์ง์ญ๋ณ์๋ก a=10์ด ํ ๋น๋์ด ์์ผ๋ฏ๋ก print() ๋ฌธ์ ์คํํ๋ฉด a๊ฐ 10์ผ๋ก ๋์ค๊ฒ ๋๋ค.
- ํจ์ func2 ์์๋ ์ ์ญ๋ณ์๋ก a= 20 ์ด ํ ๋น๋์ด ์์ผ๋ฏ๋ก print() ๋ฌธ์ ์คํํ๋ฉด a๊ฐ 20์ผ๋ก ๋์ค๊ฒ ๋๋ค.
'๐ ์คํฐ๋ > ํ์ด์ฌ ์คํฐ๋ ๊ฐ์์๋ฃ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[1ํ/ํ๊ท๋ฆผ] 5์ฐจ์ ํ์ด์ฌ ์คํฐ๋ - ํจ์ (0) | 2023.04.06 |
---|---|
[2ํ/๊น๊ฐ๋ฆผ, ์ต๋ค์] 5์ฐจ์ ํ์ด์ฌ ์คํฐ๋ - ํจ์ (0) | 2023.04.06 |
[2ํ/๊น์ธ์ฐ] 5์ฐจ์ ํ์ด์ฌ ์คํฐ๋ - ํจ์ (0) | 2023.04.05 |
[4ํ/๊น๋ฏผํ] 4์ฐจ์ ํ์ด์ฌ ์คํฐ๋ - ๋ฐ๋ณต๋ฌธ (0) | 2023.04.05 |
[3ํ/๊น๊ท๋ฆฌ] 5์ฐจ์ ํ์ด์ฌ ์คํฐ๋ - ํจ์ (0) | 2023.04.03 |