์ํ์ ์ธ ์๋ฏธ์ ํจ์์ ๊ฐ๋ ์ ๋น์ทํ์ง๋ง ์ญํ ์ด ๋ค๋ฅด๋ค.
ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฐ์ฅ ์ค์ํ ์ด์ ๋ ์ฌ์ฌ์ฉ์ฑ ๋๋ฌธ์ด๋ค. Reusability๋ผ๊ณ ํ๋ฉฐ, ๋๊ฐ์ ๊ตฌ์กฐ์ ์ฝ๋๊ฐ ๋ฐ๋ณต๋๋ ๊ฒ์ ํผํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. ๋๊ฐ์ ๊ตฌ์กฐ์ ์ฝ๋๋ ๋ณดํต ํ ๊ฐ์ง์ ๊ธฐ๋ฅ ๋จ์๋ก ๋ฌถ์ด๊ฒ ๋๋ฉฐ, ์ด ๊ธฐ๋ฅ ๋จ์๋ฅผ ์ฝ๋๋ก ๋ฌถ์ด์ ํจ์๋ก ๋ง๋ ๋ค.
def add(a,b) :
return a + b
def sub(a, b) :
return a-b
def mul(a, b) :
return a * b
def div(a, b) :
return a / b
1. ๊ฐ์ฅ ํํ๊ฒ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ -> ํจ์ parameter์ return์ด ๋ชจ๋ ์กด์ฌํ๋ ๊ฒฝ์ฐ.
def test(a, b):
return a + b
2. ํจ์ parameter๋ ์๊ณ return์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ.
def test():
return "Test"
3. ํจ์ parameter๋ ์๋๋ฐ return์ด ์๋ ๊ฒฝ์ฐ.
def test(a, b):
print(f"a: {a}, b: {b}")
4. ํจ์ parameter๋ ์๊ณ return๋ ์๋ ๊ฒฝ์ฐ.
def test():
print("Hello World")
# *(asterisk)๋ฅผ ์์ ๋ถ์ด๋ ๊ฒ์ผ๋ก ์ฌ๋ฌ๊ฐ์ parameter๋ฅผ ๋ฐ์์ tuple๋ก ๋ณํํ์ฌ ์ค๋ค.
def add_many(*args): # arguments๋ฅผ ๋ชจ๋ ๋ฐ์์ ๋ค ๋ํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅ.
total = 0
for arg in args :
total = total + arg
return total # ๋์ ํฉ(cumulative sum)
function call์ ํ ๋ ์ฃผ์์ฌํญ
โ mutable data type์ Parameter๋ก ๋๊ฒจ์ฃผ๋ ๊ฒฝ์ฐ์๋ ๋ด๋ถ ๋ฐ์ดํฐ๊ฐ ๋ฐ๋ ์ ์์์ ์ธ์งํด์ผํ๋ค!
โก immutable data type์ ๋ด๋ถ ๋ฐ์ดํฐ๊ฐ ๋ฐ๋์ง ์์ต๋๋ค.
L = [1, 2, 3, 4, 5]
L2 = [1, 2, 3, 4, 5, 6]
L3 = [1, 2, 3, 4, 5, 6, 7, 8, 10, -11, -63, 17]
def find_median(L) :
L.sort()
if (len(L) % 2) == 0 : # ๋ฆฌ์คํธ๊ฐ ์ง์ ๊ฐ ์ผ ๋
n1 = L[int(len(L)/2)-1]
n2 = L[int(len(L)/2)]
n = (n1 + n2) / 2
else : # ๋ฆฌ์คํธ๊ฐ ํ์ ๊ฐ ์ผ ๋
n = L[int(len(L)/2)]
return n
# ์ด ๋ ํจ์๋ฅผ ์คํํ๊ฒ๋๋ฉด ๋ด๋ถ ๋ฐ์ดํฐ๊ฐ ๋ฐ๋๊ฒ ๋๋ค.
# ๋ฐ๋ผ์ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์ด๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
# ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ : ๋ณต์ฌ๋ณธ์ ํจ์์ ๋๊ฒจ์ฃผ๊ธฐ
L3_copy = L3.copy()
find_median(L3_copy)
# ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ : ํจ์ ๋ด์์ ๋ณต์ฌ๋ณธ์ ๋ง๋ค๊ธฐ
def find_median(L) :
# L.sort()
L = sorted(L) # ์ ๋ ฌ๋ ๊ฒฐ๊ณผ๋ฅผ L์ ๋ณต์ฌ
if (len(L) % 2) == 0 : # ๋ฆฌ์คํธ๊ฐ ์ง์ ๊ฐ ์ผ ๋
n1 = L[int(len(L)/2)-1]
n2 = L[int(len(L)/2)]
n = (n1 + n2) / 2
else : # ๋ฆฌ์คํธ๊ฐ ํ์ ๊ฐ ์ผ ๋
n = L[int(len(L)/2)]
return n
find_median(L3)