ν¨μ(function)
μ€λ³΅ μ½λ μ κ±°
μ¬μ¬μ©
νΉμ κΈ°λ₯ 1κ° μ μ
λ§€κ°λ³μ(parameter)μ μΈμ(arguments)
λ§€κ°λ³μ : ν¨μμ μ λ ₯μΌλ‘ μ λ¬λ κ°μ λ°λ λ³μ
μΈμ : ν¨μλ₯Ό νΈμΆν λ μ λ¬νλ μ λ ₯κ°
μ ν
1) μ¬μ©μμ μν¨μ : μ¬μ©μκ° λ§λ ν¨μ
2) λͺ¨λν¨μ(*.py) : νμ΄μ¬ μ 곡 ν¨μ
μ¬μ©μμ μν¨μ
νμ)
def ν¨μλͺ
([λ§€κ°λ³μ]) :
μ€νλ¬Έ
μ€νλ¬Έ
[return κ°]
2μ°¨ λ°©μ μ μ
def fx(x) : # x : λ§€κ°λ³μ(μ
λ ₯)
y = x**2 + 2*x + 3
return y # ν¨μ λ°νκ°(μΆλ ₯)
ν¨μ νΈμΆ
fx(1) # μ€μΈμ : 1 -> 6
fx(2) # μ€μΈμ : 2 -> 11
fx(3) # μ€μΈμ : 3 -> 18
1. μΈμκ° μλ ν¨μ
def userFunc1() :
print('userFunc1')
print('μΈμκ° μλ ν¨μ')
ν¨μ νΈμΆ
userFunc1()
2. μΈμκ° μλ ν¨μ
def userFunc2(x, y) :
z = x + y
print('z=', z)
ν¨μ νΈμΆ
userFunc2(10, 20)
3. λ°νκ° μλ ν¨μ
def userFunc3(x, y) :
add = x + y
sub = x - y
mul = x * y
div = x / y
return add, sub, mul, div
x,y ν€λ³΄λ μ
λ ₯
x = int(input('x : '))
y = int(input('y : '))
ν¨μ νΈμΆ1 : μ¬λ¬ κ° λ³μ λ°κΈ°
a, s, m, d = userFunc3(x, y) # (20, 5)
print(a, s, m, d) # 25 15 100 4.0
ν¨μ νΈμΆ2 : ν κ° λ³μ λ°κΈ°
re = userFunc3(x, y)
print(re) # (25, 15, 100, 4.0) - tuple
print('κ³±μ
=', re[2])
λͺ¨λ(module) ν¨μ
νμ΄μ¬ μ 곡 ν¨μ(λΌμ΄λΈλ¬λ¦¬ ν¨μ)
μ ν
1) built-in λͺ¨λ : λ΄μ₯λ λͺ¨λ(λ΄μ₯ν¨μ)
2) import λͺ¨λ : κ°μ Έμ€κΈ° λͺ¨λ
1. built-in λͺ¨λ
import builtins
dir(builtins) # λ΄μ₯ν¨μ or ν΄λμ€
dataset = list(range(1, 6))
print(dataset) # [1, 2, 3, 4, 5]
built-in λͺ¨λ μ 곡 λ΄μ₯ν¨μ
sum(dataset) # 15
max(dataset) # 5
min(dataset) # 1
len(dataset) # 5
help(len) # ν¨μ μ¬μ©λ², μΆμ² λ± μ 곡
* Help on built-in function len in module builtins:
2. import λͺ¨λ
import statistics # ν΅κ³κ΄λ ¨ ν¨μ μ 곡 - λ°©λ²1
from statistics import mean, median, stdev, variance # λ°©λ²2(κΆμ₯)
* source νμΈ : Ctrl + ν΄λ¦
dir(statistics) # ν¨μ λͺ©λ‘
statistics.mean(dataset) # 3 - λ°©λ²1
mean(dataset) # 3 - λ°©λ²2
median(dataset) # 3
stdev(dataset) # 1.5811388300841898
variance(dataset) # 2.5
ν¨μ μμ©
1. ν
μ€νΈ μ μ²λ¦¬ ν¨μ
2. ν΅κ³ κ³μ° ν¨μ
1. ν
μ€νΈ μ μ²λ¦¬ ν¨μ
λ¨κ³1 : μλ¬Έμ λ³κ²½
def clean_text(texts) :
texts_re = [st.lower() for st in texts]
λ¨κ³2 : μ«μ μ κ±°
import re # re λͺ¨λ κ°μ Έμ€κΈ°
texts_re2 = [re.sub('[0-9]', '', st) for st in texts_re]
λ¨κ³3 : λ¬Έμ₯λΆνΈ μ κ±°
punc_str = '[,.?!:;]'
texts_re3 = [re.sub(punc_str, '', st) for st in texts_re2]
λ¨κ³4 : νΉμλ¬Έμ μ κ±°
spec_str = '[@#$%^&*()]'
texts_re4 = [re.sub(spec_str, '', st) for st in texts_re3]
λ¨κ³5 : μλ¬Έ μ κ±°
texts_re5 = [re.sub('[a-z]', '', st) for st in texts_re4]
λ¨κ³6 : 곡백(white space) μ κ±°
texts_re6 = [' '.join(st.split()) for st in texts_re5]
return texts_re6
texts = [' μ°λ¦¬λλΌ λνλ―Όκ΅, μ°λ¦¬λλΌ%$ λ§μΈ', 'λΉμκ·Έ&λΌ 500GRAM μ λ ₯ μ΅κ³ !', 'λλ λνλ―Όκ΅ μ¬λ', '보νλ£ 15000μμ νμ 보μ₯ λ§κ° μλ°', 'λλ νκΈΈλ']
print('μ μ²λ¦¬ μ ')
print(texts)
ν¨μ νΈμΆ
texts_re = clean_text(texts)
print('μ μ²λ¦¬ ν')
print(texts_re)
2. ν΅κ³ κ³μ° ν¨μ : νλ³Έμ λΆμ°/νμ€νΈμ°¨ κ³μ° ν¨μ
dataset = [2, 4, 5, 6, 1, 8]
len(dataset) # 6
νλ³Έμ λΆμ° = sum((xλ³λ - μ°μ νκ· )**2) / n-1
νλ³Έμ νμ€νΈμ°¨ = sqrt(λΆμ°)
import statistics as sts # λ³μΉ
sts.mean(dataset) # 4.333333333333333
sts.variance(dataset) # 6.666666666666666
sts.stdev(dataset) # 2.581988897471611
μ°μ νκ· ν¨μ
def avg(dataset) :
return sum(dataset) / len(dataset)
ν¨μ νΈμΆ
avg(dataset) # 4.333333333333333
νλ³Έμ λΆμ°/νμ€νΈμ°¨ ν¨μ
def var_sd(dataset) :
a = avg(dataset) # ν¨μ νΈμΆ
list λ΄ν¬
diff = [ (data - a)**2 for data in dataset]
#print('diff =', diff)
var = sum(diff) / (len(dataset) - 1) # n-1
sd = sts.sqrt(var)
return a, var, sd # λ°νκ°
ν¨μ νΈμΆ
avg, var, sd = var_sd(dataset)
print('μ°μ νκ· = ', avg)
print('νλ³Έ λΆμ° =', var)
print('νλ³Έ νμ€νΈμ°¨ =', sd)
μ°μ νκ· = 4.333333333333333
νλ³Έ λΆμ° = 6.666666666666666
νλ³Έ νμ€νΈμ°¨ = 2.581988897471611
ν¨μμ κ°λ³μΈμ
ν κ° κ°μΈμλ‘ μ¬λ¬ κ°μ μ€μΈμλ₯Ό λ°λ μΈμ
볡μμ μΌλ° μΈμλ₯Ό μ¬μ©μμκ² μ
λ ₯λ°μμ μ¬μ©ν λ μ°μΈλ€ (μ ν΄μ§μ§ μμ μμ μΌλ° μΈμ)
μ¬λ¬κ°μ μΈμλ₯Ό λ°μ κ²½μ°, ν¨μ λ΄λΆμμλ ννλ‘ λ°μ κ²μ²λΌ μΈμνλ€.
νμ1) def ν¨μλͺ
(μΈμ1, *μΈμ2)
νμ2) def ν¨μλͺ
(μΈμ1, **μΈμ2)
1. κ°λ³μΈμ μ : tuple
def Func1(name, *names) :
print(name) # νκΈΈλ
print(names) # ('μ΄μμ ', 'μ κ΄μ', 'κ°κ°μ°¬') : tuple
print(type(names)) # <class 'tuple'>
ν¨μ νΈμΆ
Func1("νκΈΈλ", "μ΄μμ ", "μ κ΄μ", "κ°κ°μ°¬")
2. κ°λ³μΈμ μ : dict(key:value)
def Func2(w, h, **other) :
print('λͺΈλ¬΄κ² :', w) # λͺΈλ¬΄κ² : 65
print('ν€ : ', h) # ν€ : 175
print('κΈ°ν : ', other) # κΈ°ν : {'name': 'νκΈΈλ', 'addr': 'μμΈμ'}
ν¨μ νΈμΆ
Func2(65, 175, name='νκΈΈλ', addr ='μμΈμ')
3. ν¨μλ₯Ό μΈμλ‘ λκΉ
def square(x) :
return x**2 # x^2
def myFunc(func, datas) : # (ν¨μ, λ°μ΄ν°μ
)
# list + for
result = [] # κ³μ° κ²°κ³Ό
for x in datas :
result.append(func(x)) # x**2
list λ΄ν¬
result2 = [func(x) for x in datas]
return result, result2
ν¨μ νΈμΆ
datas = [2,4,6]
result, result2 = myFunc(square, datas) # μ€μΈμ : ν¨μλͺ
print(result) # [4, 16, 36]
print(result2) # [4, 16, 36]
'λ°μ΄ν°λΆμκ° κ³Όμ > Python' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
DAY38. Python ν΄λμ€μ κ°μ²΄ (0) | 2021.11.10 |
---|---|
DAY39. Python ν¨μ (2)μΆμ½ν¨μ, μ ν¨λ²μ, λ΄μ₯ν¨μ, μ€μ²©ν¨μ (0) | 2021.11.09 |
DAY37. Python λ¬Έμμ΄ μ μ²λ¦¬, μΈλ―Ένλ‘μ νΈ λ°ν (0) | 2021.11.05 |
DAY36. Python μ κ·ννμ (0) | 2021.11.04 |
DAY35. Python Basic μλ£κ΅¬μ‘° (2)set, dict (0) | 2021.11.03 |