5μ°¨μ_ν¨μ_κ°μμλ£.pdf
3.40MB
5μ°¨μ_ν¨μ_κ³Όμ .pdf
0.13MB
ν¨μ
μ°Έκ³ λμ : λ°μ΄ν° κ³Όνμ μν νμ΄μ¬ νλ‘κ·Έλλ°, μ΅μμ²
ν¨μκΈ°μ΄
- λ€μ΄κ°κΈ° μμ
- λ€ κ°μ΄ λͺ¨μ¬ ν λ‘ νλ©° ν μ€ ν μ€ μμ±
- κ°μ₯ μνλ μ¬λμ΄ νΌμ μμ±
- νμν λΆλΆμ λλμ΄ μμ±ν ν ν©μΉκΈ°
- νλ‘κ·Έλ¨μ λ§λ€ λ μμ±ν΄μΌ νλ λΆλΆμ λλκΈ° μν΄ νμ΄μ¬μμλ ν¨μ, κ°μ²΄, λͺ¨λμ μ 곡ν¨
- μ¬λ¬λͺ μ΄ νλ‘κ·Έλ¨μ κ°λ°ν λ, μ½λλ₯Ό μ΄λ»κ² μμ±νλ©΄ μ’μκΉ ?
- ν¨μμ κ°λ
κ³Ό μ₯μ
- ν¨μ(function) : μ΄λ€ μΌμ μννλ μ½λμ λ©μ΄λ¦¬, μ½λμ λ¬Άμ
- ex. λνμ λμ΄λ₯Ό ꡬνλ νλ‘κ·Έλ¨μμ μ¬κ°νμ λμ΄λ₯Ό ꡬνλ μμ μ΄ μλ€λ©΄, ν΄λΉ μμ μ ν¨μννμ¬ νμν λλ§λ€ νΈμΆνλ κ²
- ν¨μμ μ₯μ
- νμν λ λ§λ€ νΈμΆ κ°λ₯ : ν¨μλ λ°λ³΅μ μΌλ‘ μνν΄μΌ νλ μ 무λ₯Ό ν λ²λ§ μμ±ν΄λκ³ νμν λ λ§λ€ νΈμΆνμ¬ μ¬μ© κ°λ₯, κ°μ μμ μ¬λ¬λ² λ°λ³΅ λΆνμ
- λ
Όλ¦¬μ λ¨μλ‘ λΆν κ°λ₯ :
γ΄ κ³±μ μ€ν μ½λ,γ΄ λλμ μ€ν μ½λ,. - .
- .
- γ΄ λ§μ μ€ν μ½λ,
- < λν κ³μ° νλ‘κ·Έλ¨ >
- μ½λμ μΊ‘μν :
- μΈν°νμ΄μ€ μ μμΈν°νμ΄μ€κ° μ μ μλ ν¨μλΌλ©΄ μ½λμ λ΄λΆ ꡬ쑰λ₯Ό λͺ°λΌλ ν¨μλ₯Ό μ¬μ©νλ λ°μλ μ무 λ¬Έμ κ° μμ
- μ½λμ μ λ ₯(input)λλ κ°κ³Ό μ½λμ μν κ²°κ³ΌμΈ μΆλ ₯(output)λλ κ°μ λͺ νν νλ€λ κ², νν λΈλλ°μ€λΌκ³ λν¨
- ν¨μμ μΈν°νμ΄μ€λ§ μ μ μνλ©΄ λ€λ₯Έ μ¬λμ΄ μμ μ μ½λλ₯Ό μ½κ² κ°μ Έλ€ μ¬μ©ν μ μμ
- ν¨μμ μ μΈdef : definitionμ μ€λ§, ν¨μμ μ μλ₯Ό μμνλ€λ μλ―Έ
- ν¨μ μ΄λ¦ κ·μΉ
- μλ¬Έμλ‘ μ λ ₯
- λμ΄μ°κΈ°λ₯Ό ν κ²½μ°μλ κΈ°νΈ μ¬μ© ex. save*_*model
- μμ μ λνλ΄κΈ° μν΄ λμ¬μ λͺ μ¬λ₯Ό ν¨κ» μ¬μ©νλ κ²½μ°κ° λ§μ ex. find_number
- μΈλΆμ 곡κ°νλ ν¨μμΌ κ²½μ° μ€μλ§μ μ¬μ©νμ§ μκ³ μ§§κ³ λͺ λ£ν μ΄λ¦μΌλ‘ μ νλ€
ν¨μμ΄λ¦ : def calculate_rectangle_areareturn : λ°ννλ€λ μλ―Έ, x, yλ₯Ό κ³±ν κ°μ λ°ννλ ν¨μλ‘ μ΄ν΄</aside>f(x) = x + 1 μΌ λ f(1) = 2 μ¦, ν¨μ f(x)μμ xμ 1μ΄λ€μ΄κ°λ©΄ 2κ° λ°νλλ κ²def calculate_rectangle_area(x, y) return x * y
- ν¨μ μ΄λ¦ κ·μΉ
- μνμμ xμ ν΄λΉνλ κ²μ΄ λ§€κ° λ³μ, μ¦ μ λ ₯κ°μ΄κ³ x+1μ κ³μ° κ³Όμ μ΄ ν¨μ μμ μ½λλ©° κ·Έ κ²°κ³Όκ° λ°νλλ κ°
- μνμμ ν¨μμ κ°μ κ°λ μ΄λΌ μκ° !
- <aside> π‘ λ°νμ΄λ ?
- 맀κ°λ³μ : x, y
- λͺ λ Ήλ¬Έ : λͺ λ Ήλ¬Έμ λ°λμ ‘λ€μ¬μ°κΈ°’ν ν μ½λ μ λ ₯ (forλ¬Έ, ifλ¬Έ, … ect μΌλ°μ μΈ μ½λ)
- ν¨μμ΄λ¦ : κ°λ°μ λ§μλλ‘ μ§μ but κ·μΉ μ‘΄μ¬
- def ν¨μ_μ΄λ¦ (맀κ°λ³μ #1...): λͺ λ Ήλ¬Έ1 λͺ λ Ήλ¬Έ2 return <λ°νκ°>
- ν¨μμ μ€ν μμ
<aside> β οΈ ν¨μμ μ μΈ λΆλΆμ μ½λμ 맨 λ§μ§λ§μ μ λ ₯ν μ ν΄λΉ μ½λ νΈμΆμ μ€λ₯ λ°μdef … : ν¨μ μ μ, ν΄λΉ μ½λλ₯Ό λ©λͺ¨λ¦¬μ μ λ‘λν΄ λ€λ₯Έ μ½λλ₯Ό νΈμΆν΄ μ¬μ©ν μ μλλ‘ μ€λΉκ³Όμ κ±°μΉ¨print("μ¬κ°νμ λμ΄οΌ", calculate_rectangle_area(rectangle_x, rectangle_y)) : μ μν ν¨μ μ€ν, κ²°κ³Όκ° μΆλ ₯μ¬κ°ν xμ κΈΈμ΄ : 10 μ¬κ°ν yμ κΈΈμ΄ : 20 μ¬κ°ν λμ΄ : 200
- rectangle x … : 2κ°μ λ³μμ κ°μ΄ ν λΉ, κ·Έ ν printλ¬Έ μ€ν
- </aside>
- def calculate_rectangle_area(x, y)οΌ return x * y rectangle_x = 10 rectangle_y = 20 print("μ¬κ°ν xμ κΈΈμ΄:", rectangle_x) print("μ¬κ°ν yμ κΈΈμ΄:", rectangle_y) # λμ΄λ₯Ό ꡬνλ ν¨μ νΈμΆ print("μ¬κ°νμ λμ΄οΌ", calculate_rectangle_area(rectangle_x, rectangle_y))
- νλ‘κ·Έλλ°μ ν¨μμ μνμ ν¨μf(x) = x + 1<math>f(2) =. 1, g(2) = 4, f(g(2)) = 15, g(f(2)) =. 21<programing>
151
- λ§€κ° λ³μ(parameter)μ μΈμ(argument)
def f(x)μ x : 맀κ°λ³μ맀κ°λ³μλ ν¨μμ μΈν°νμ΄μ€ μ μμ μμ΄ μ΄λ€ λ³μλ₯Ό μ¬μ©νλμ§ μ μνλ κ²11
- μΈν°νμ΄μ€
- μ¬μ©μκ° κΈ°κΈ°λ₯Ό μ½κ² λμμν€λλ° λμμ μ£Όλ μμ€ν
- 맀κ°λ³μκ° μ€κ³λλΌλ©΄ μΈμλ κ΅¬λΆ μμ΄ μ¬μ©νλ κ²½μ°κ° λ§μΌλ©°,
- μΌλ°μ μΌλ‘ ν¨μμ μ λ ₯κ°μ λν μ μλ₯Ό ν¨μ μ¬μ©μ μμ΄ μΈν°νμ΄μ€λ₯Ό μ μνλ€κ³ ν¨
- def f(x): return 2*x+7 print(f(2))
- λ§€κ° λ³μ(parameter)μ μΈμ(argument)
- 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))
- 11 + 4 + 15 + 121 = 151
- f(x) = 2x + 7, g(x) = x**, x = 2 μΌ λ, f(x) + g(x) + f(g(x)) + g(f(x))μ κ°μ ?
- νλ‘κ·Έλλ°μμμ ν¨μμ μνμμμ ν¨μλ λ§€μ° μ μ¬
- ν¨μμ νν
- a_ractangle_area() :μ΄ κ²½μ°μλ a_ractangle_area()κ° 35λ‘ μΉνλλ κ²μ΄ μλκ³ , λ°νκ°μ΄ μκΈ°μ ν¨μ μ체λ noneκ°μ κ°μ§, λμ λ΄λΆ ν¨μ print()ν¨μλ‘ μΈν΄ 35 μΆλ ₯
- μ λ ₯κ°λ μκ³ λ°νλλ κ°λ μμ§λ§ print(5*7)μ μν΄ 35κ° μΆλ ₯λλ€.
- b_ractangle_area() :λ°νκ°μ΄ μκΈ°μ λ§€κ° λ³μ μ리μ κ°μ λ£μ΄μ€μΌ ν΄λΉ κ° μ€ν, λ°νμ΄ μμΌλ©΄ ν΄λΉ ν¨μλ noneμΌλ‘ μΉνλ¨
- b_ractangle_area()κ° λ§€κ°λ³μλ‘ x,yλ₯Ό λ겨 λ°κ³ , κ·Έ κ°μ κ³μ°νμ¬ νλ©΄μ μΆλ ₯νλ ν¨μ
- x_ractangle_area(), d_ractangle_area(x,y :μ¦, returnλ¬ΈμΌλ‘ μΈν΄ 35λ‘ μΉν λλ κ²
- μ΄λ κ² returnμ΄ μλ κ²½μ°, μ¦ ν¨μμ λ°νκ°μ΄ μλ κ²½μ°μλ κ·Έ ν¨μλ₯Ό νΈμΆ νλ κ³³μμμ ν¨μμ λ°νκ°μ λ³μμ ν λΉνμ¬ μ¬μ©νλ κ²μ΄ κ°λ₯
- c_ractangle_area(), d_ractangle_area() ν¨μ λͺ¨λ, ν¨μ μμμ print()ν¨μλ₯Ό μνμν€λ κ²μ΄ μλ ν¨μλ₯Ό νΈμΆν λ print()ν¨μ μ΄μ©
- 35 35 35 35
- def a_ractangle_area(): # 맀κ°λ³μ x, λ°νκ° x print(5*7) def b_ractangle_area(): # 맀κ°λ³μ o, λ°νκ° x print(x*y) def x_ractangle_area(): # 맀κ°λ³μ x, λ°νκ° o return(5*7) def d_ractangle_area(x,y): # 맀κ°λ³μ o, λ°νκ° o return(x*y) a_ractangle_area() b_ractangle_area(5,7) print(c_ractangle_area()) print(d_ractangle_area(5,7))
- ν¨μλ 맀κ°λ³μμ λ°νκ°μ μ 무μ λ°λΌ λ€ κ°μ§ ννλ‘ κ΅¬λΆ
ν¨μ μ¬ν
- ν¨μμ νΈμΆ λ°©μ
f(x)μ 5μ 3μ΄ μ λ ₯λ¨,μ΄λ κ² ν¨μ μμμ λ³μκ° μΈμμ ννλ‘ μ λ ₯ λ λ λ³μλ₯Ό νΈμΆνλ λ°©μμ νλ‘κ·Έλλ°μμλ λ€μκ³Ό κ°μ΄ ν¬κ² λ κ°μ§λ‘ λλλ€λ©λͺ¨λ¦¬ μ£Όμλ λ³μκ° μ μ₯λλ 곡κ°μ κ°λ₯΄ν€κ³ , κ·Έ κ³΅κ° μ체μ μλ‘μ΄ κ°μ ν λΉνλ©΄ κ·Έ 곡κ°μ κ°λ¦¬ν€κ³ μλ λ€λ₯Έ λ³μμλ μν₯μ μ€λ€.9 3
μ¦ μλ‘μ΄ κ°μ ν λΉνκ±°λ ν΄λΉ κ°μ²΄λ₯Ό μ§μΈ λλ μν₯μ μ£Όμ§ μμ§λ§ λ¨μν ν΄λΉ κ°μ²΄ μ κ°μ μΆκ°ν λλ μν₯μ μ€λ€
λ¨Όμ hamμ΄λΌλ 리μ€νΈλ₯Ό λ§λ€κ³ , ν¨μ spamμ hamμ μΈμλ‘ μ λ ₯νλ€.hamκ³Ό eggsλ ν¨μμ νΈμΆ λ°©μμΌλ‘ κ°μ²΄λ₯Ό νΈμΆνκ³ μκΈ°μ κ°μ μ£Όμ 곡μ eggs = [2, 3]μΌλ‘ μλ‘μ΄ λ¦¬μ€νΈλ₯Ό λ§λ€μ΄μ€λ€.κ·Έλ¦¬κ³ ν¨μλ₯Ό λΉ μ Έλμ print(ham)μ΄ μ€νλλ©΄ eggs.append(1)μ μν΄ μΆκ°λ [0, 1]μ΄ νλ©΄μ μΆλ ₯λλ€.[0, 1]
- μλ‘μ΄ κ°μ ν λΉνκΈ° μ κΉμ§λ κΈ°μ‘΄μ λμ΄μ¨ μΈμ κ°μ²΄μ μ£Όμκ°μ κ·Έλλ‘ μ¬μ©νλ λ°©μ μ΄λΌκ³ μ΄ν΄νλ©΄ λ¨
- μ΄κ²μ΄ λ°λ‘ κ°μ²΄ νΈμΆ(call by object reference)μ΄λΌλ νμ΄μ¬μ ν¨μ λ΄λΆ λ³μ νΈμΆ λ°©μμ΄λ€.
- κ·Έλμ λμ΄μ hamκ³Ό eggsκ° κ°μ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό κ°λ¦¬ν€μ§ μκ³ eggsλ μκΈ°λ§μ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό κ°μ§κ² λλ€.
- λ°λΌμ eggs. append(1)μ μν΄ ν΄λΉ 리μ€νΈμ 1 μ΄ μΆκ°λλ©΄ hamκ³Ό eggs λͺ¨λ μν₯μ λ°λλ€
- μ΄λ ν¨ μ μμμλ μ΄λ¦μ΄ hamμμ eggsλ‘ λ°λλ€.
- def spam(eggs): eggs.append(1) # κΈ°μ‘΄ κ°μ²΄μ μ£Όμκ°μ [1]μΆκ° eegs = [2, 3] ham = [0] spam(ham) print(ham)
- νμ΄μ¬μμλ κ°μ²΄μ μ£Όμλ₯Ό ν¨μλ‘ λκΈ°κΈ° λλ¬Έμ μ λ¬λ κ°μ²΄μ κ°μ λ³κ²½μ΄ μμ κ²½μ°,
- νμ΄μ¬μ κ°μ²΄μ μ£Όμκ° ν¨μλ‘ λμ΄κ°λ€λ λ»μ κ°μ²΄ νΈμΆ λ°©μμ μ¬μ©
- μ¦, μμ μ½λμμ λ§μ½ μ°Έμ‘° νΈμΆλ‘ μ μ©λλ€λ©΄ 맨 λ§μ§λ§μ μλ Xμ κ°μ 5λ‘ λ³νλμ΄μΌ νλ€. but νμ΄μ¬μ μ ν΅μ μΈ λ κ°μ§ λ°©μμ νΌν©ν μ‘°κΈμ νΉμ΄ν λ°©μμ μ¬μ©νκ³ μλ€.
- κ·Έλ λ€λ©΄ ν¨μ μμμμ xμ λ°μμμ xλ κ°μ λ³μμΌκΉ?
- def f(x): y = x x = 5 return y*Y x = 3 print(f(x)) print(x)
- λ³μμ μ¬μ© λ²μν¨μ λ΄λΆμμ μ¬μ©ν κ²μΈμ§, λλ νλ‘κ·Έλ¨ μ 체μμ μ¬μ©ν κ²μΈμ§ κ·Έ λ²μλ₯Ό κ²°μ νλ κ·μΉ
- λ³μ μ¬μ©λ²μ κ²°μ μ κ³ λ €ν΄μΌν λ³μ
- μ§μλ³μ(local variabl) : ν¨μ λ΄λΆμμλ§ μ¬μ©
- μ μλ³μ(global variabl) : νλ‘κ·Έλ¨ μ 체μμ μ¬μ©
def test(t): print(x) t = 20 print('In Function:', t) x = 20 test(x) print('In Main:', x) print('In Main:', t)
νλ‘κ·Έλ¨μ΄ κ°μ₯ λ¨Όμ μμλλ μ§μ μ x= 10κ·Έλ λ€λ©΄ ν¨μ λ΄λΆμμ μ²μ λ§λλ print(x)μ xλ μ΄λ€ λ³μμΌκΉ?μ¦, νλ‘κ·Έλ¨ μ 체μμ μ¬μ©ν μ μλ μ μ λ³μμ΄λ€.μ¦, ν¨μ λ΄λΆμμλ xλ₯Ό λ°λ‘ μ μΈν μ μ μκ³ , tλ₯Ό μ μΈν΄ μ¬μ©but ν¨μκ° μ’ λ£λκ³ μ½λμ print('In MainοΌ’, t)κ° μ€νλλ©΄ μ€λ₯κ° μΆλ ₯λλ€. μλνλ©΄ 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
s = 'I love London!' : μ§μ λ³μI love London! I love Paris!
def f(): global s s ="I love London! print(s) s = "I love Paris!" f() print(s)
κΈ°μ‘΄μ sμλ ‘I love Paris!’κ° μ μ₯λμ΄ μλλ°κ·Έλμ μ΄μ κ³Ό λ¬λ¦¬ ν¨μ λ΄λΆμ μΈλΆμ μλ sλ κ°μ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό μ¬μ©νκ² λλ€.I love London! I love London!
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:5bοΌ7a+b:12 In Function aοΌ5 bοΌ7 a+bοΌ12 totalοΌ12 After Calculation Total:0 SumοΌ12
- λ°λΌμ ν΄λΉ λ©λͺ¨λ¦¬ μ£Όμμ μλ‘μ΄ κ°μΈ ‘I love London!’μ΄ ν λΉλλ©΄ ν¨μ μΈλΆμ sμλ ν΄λΉ κ°μ΄ ν λΉλμ΄ μ΄μ κ°μ κ²°κ³Όκ° μΆλ ₯λλ κ²μ΄λ€
- f() ν¨μ λ΄λΆμ μ½λκ° μνλλ μκ° global sκ° μ μΈλμ΄ ν¨μ μΈλΆμ s, μ¦ μ μ λ³μ sμ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό μ¬μ©νλ€.
- s = 'I love Paris!' : μ μ λ³μ
- def f(): s = 'I love London!' print(s) s = 'I love Paris!' f() print(s)
- κ·Έλ¦¬κ³ t = 20 μ μν΄ tμ 20μ΄ ν λΉλκ³ , μ€μ λ‘ 4ν print('In Function:’, t)μ κ²°κ³Όλ‘ In FunctionοΌ 20μ΄ νλ©΄μ μΆλ ₯λλ κ²μ μμν μ μμ
- test(x) ν¨μμ xλ₯Ό tλ‘ μΉννμ¬ μ¬μ©
- μ΄λμ xλ ν¨μ λ΄λΆμμ μ¬ μ μλμ§ μμκΈ°μ ν¨μλ₯Ό νΈμΆν λ©μΈ νλ‘κ·Έλ¨μμ μ μν x = 10μ xλ₯Ό λ»ν¨
- x = 20μ xλ test(x) ν¨μμ μΈμλ‘ λμ΄κ°λ€.
- λ³μ μ¬μ©λ²μ κ²°μ μ κ³ λ €ν΄μΌν λ³μ
- λ³μμ μ¬μ© λ²μ : λ³μκ° μ½λμμ μ¬μ©λλ λ²μ
- μ¬κ· ν¨μμ¬κ·μ μ΄λΌλ ννμ μμ μ μ΄μ©ν΄ λ€λ₯Έ κ²μ μ μνλ€λ λ», μ¬κ· ν¨μλ μνμ μ νμκ³Ό κ°μ νν
def factorial(n): if n ==1: return 1 else: return n*factorial(n-1) print(factorial(int(input('In Number for Factorial Calculation: '))))
< μ½λ μ€ν κ³Όμ >μμ ν¨μλ forλ¬Έμ΄λ whileλ¬ΈμΌλ‘λ μΌλ§λ μ§ νν κ°λ₯λ°λ³΅λ¬Έμμλ λ§μ°¬κ°μ§λ‘ μ’ λ£ μ‘°κ±΄κ³Ό λ°λ³΅λ¬Έλ§λ€ λμΌν μ°μ°μ΄ μ§νλκΈ° λλ¬Έ μ¬κ· ν¨μλ₯Ό μ μ¬μ©νλ κ²μ λ§€μ° μ€μ ! !In Number for Factorial Calculation: 5 < μ¬μ©μ μ λ ₯ 120 < νλ©΄ μΆλ ₯
- κ³ κΈ νλ‘κ·Έλλ¨Έλ‘ κ°μλ‘ μ¬κ·μ μΌλ‘ μμ±λ νλ‘κ·Έλ¨μ μμ£Ό μ νκ² λλ―λ‘ κ°λ μ μΌλ‘ μ΄ν΄νκ³ μμ΄μΌ ν¨
- μ¬κ· ν¨μμ κΈ°λ³Έ κ΅¬μ‘°κ° μ’ λ£ μ‘°κ±΄, λ¨κ³λ³ λ°νμΌλ‘ ꡬμ±λμ΄ μμΌλ―λ‘ ν¬κ² λ³κ²½ μμ΄λ μ¬μ©ν μ μμ
- 5 * factorial(5 - 1) = 54 factorial(4 - 1) = 543* factorial(3 - 1) = 5432 factorial(2 -1) =54321
- μ¬κ· ν¨μ (recursive function): μκΈ° μμ μ λ€μ νΈμ€
ν¨μμ μΈμ
- μΈμ
- μΈμ(argument) : ν¨μμ μ λ ₯μΌλ‘ λ€μ΄κ°λ λ³μμ λ€μν νν
- ν€μλ μΈμν¨μμ μ
λ ₯λλ 맀κ°λ³μμ λ³μλͺ
μ μ¬μ©ν΄ ν¨μμ μΈμλ₯Ό μ§μ νλ λ°©λ²
print_something() ν¨μλ (my_name, your_name)μ΄λΌλ μ λ ₯ μΈν° νμ΄μ€λ₯Ό κ°μ§but ν¨μμ μ λ ₯ λ³μλͺ λ§ μ νν κΈ°μ¬λλ€λ©΄ μμμ μκ΄μμ΄ μνλ λ³μμ μΈμλ₯Ό λ£μ μ μμμ¦ μ λ ₯λλ μμμ μκ΄ μμ΄ ‘Sungchul’μ my_name, ‘TEAMLAB’μ your_nameμΌλ‘ ν λΉλ¨, λ°λΌμ λ ν¨μμ λν 2κ°μ§ νΈμΆ μ½λμ μ€ν κ²°κ³Όκ° λμΌνκ² μΆλ ₯λ¨Hello TEAM LAB, My name is Sungchul HeUo TEAMLAB, My name is Sungchul
- print_something(your_ name = ‘TEAMLAB’, my_name = ‘Sungchul’)μ 보면 ν¨μμ μΈμμμ μ¬μ©λλ κ°κ°μ λ³μλͺ μ λͺ μν¨μΌλ‘μ¨ ν΄λΉ λ³μμ κ°μ΄ ν λΉλ μ μλλ‘ μ²λ¦¬νμλ€.
- μΌλ°μ μΌλ‘ ν¨μλ₯Ό νΈμΆν λ μΈμκ° μμλλ‘ μ λ ₯λλλ‘ μ½λ μμ±ν΄μΌλ¨print_something(’Sungchul’, ‘TEAMLAB’)μμ ‘Sungchul’μ my_name, ‘TEAMLAB’μ yoiir_nameμ ν λΉ
- def print_something(my_name, your_name): print('Hello {}, My name is {1}'.format(your_name, my_name)) print_something('Sungchul', 'TEAMLAB') print_something(your_name = 'TEAMLAB', my_name = 'Sungchul')
- ν€μλ μΈμ(keyword arguments):
- λν΄νΈ μΈμ맀κ°λ³μμ κΈ°λ³Έκ°μ μ§μ νμ¬ μ¬μ©νκ³ , μλ¬΄λ° κ°λ μΈμλ‘ λμ΄κ°μ§ μμ λ μ§μ λ κΈ°λ³Έκ°μ μ¬μ©νλ λ°©
def print_something_2(my_name, your_name = ‘TEAMLAB’) μμ ν¨μμ μΈν°νμ΄μ€λ₯Ό μ μκ²°κ΅ μ½λλ₯Ό λͺ¨λ μ€ννλ©΄ λ μ½λμ κ²°κ³Όλ κ°λ€.μλ₯Όλ€μ΄ μ΄κΉκ°μ 0μΌλ‘ ν λΉνλ©΄ ‘init=0’κ³Ό κ°μ ννλ‘ μ λ ₯Hello TEAMLAB, My name is Sungchul Hello TEAMLAB, My name is Sungchul
- κ°λμ κ·Έ λ³μμ νΉμ ν κ°μ΄ μ λ ₯λμ΄μΌ ν λμλ ‘init = None’κ³Ό κ°μ νμμΌλ‘ μ΄κΉκ°μ μ§μ νλ©΄ λ¨
- μ΄λ¬ν λν΄νΈ μΈμλ₯Ό μ¬μ©ν λ λ³΄ν΅ ν¨μλ₯Ό μ¬μ©νλ μ¬λμ΄ μ΄κΉκ°μ μ λ ₯ν΄μ£Όμ΄μΌ ν λκ° μμ
- your_name 맀κ°λ³μμλ κΈ°λ³Έκ°μΌλ‘ ‘TEAMLAB’ μ§μ , μ΄ κ²½μ° ν¨μλ₯Ό νΈμΆν λ your_name 맀κ°λ³μμλ λ³λμ κ°μ ν λΉνμ§ μμλ ν¨μκ° μλprint_something_2(’Sungchul’)μμ ν¨μμ 맀κ°λ³μκ° 2κ°μΈλ°λ μΈμλ₯Ό νλλ§ μ λ ₯, μ΄ κ²½μ° μ λ ₯λ κ°μ 첫 λ²μ§Έ 맀κ°λ³μμΈ my_nameμ ν λΉ, λ λ²μ§Έ 맀κ°λ³μμΈ your_nameμλ λν΄νΈ μΈμλ‘ μ§μ λ ‘TEAMLAB’ ν λΉ
- def print_something_@(my_name, your_name = 'TEAMLAB'): print('HEllo{0}, My name is {1}.format(your_name, my_name)) print_something_2('Sungchul', 'TEANLAB') print_something_2('Sungchul')
- λν΄νΈ μΈμ(default arguments):
- κ°λ³ μΈμνμ΄μ¬μμ κΈ°λ³Έμ μΌλ‘ κ³±μ
λλ μ κ³± μ°μ° μΈμλ λ³μλ₯Ό λ¬Άμ΄μ£Όλ κ°λ³ μΈμλ₯Ό λ§λ€ λ μ¬μ©
def asterisk_test(a, b, *args) return a+b+sum(args) print(asterisk_test(1,2,3,4,5))
asterisk test() ν¨μλ λ³μ a, bλ₯Ό λ겨 λ°κ³ , λλ¨Έμ§λ₯Ό *argsλ‘ λ겨λ°μasterisk_test(l, 2, 3, 4, 5)λ₯Ό 보면 1κ³Ό 2λ κ°κ° aμ bμ ν λΉλκ³ , λλ¨Έμ§ μΈμμΈ 3, 4, 5κ° λͺ¨λ *argsμ ν λΉλ¨15
κ²°κ³Όκ°μ΄ κ΄νΈλ‘ λ¬Άμ¬ μΆλ ₯λ¨, μ΄λ κ² κ΄νΈλ‘ λ¬Άμ¬ μΆλ ₯λλ μλ£νμ νν(tuple)μλ£νμ΄λΌ νλ©° 리μ€νΈ μλ£νμ²λΌ μΈλ±μ€λ‘ μ κ·Όν μ μλ μλ£νμ΄λΌκ³ κΈ°μ΅ !λν 리μ€νΈμ λΉμ·ν νν ννλ‘ ν¨μ μμμ μ¬μ©λμ΄μ§λ―λ‘ μΈλ±μ€λ₯Ό μ¬μ©νμ¬ argsοΌ»0οΌ½, argsοΌ»1οΌ½ λ±μ ννλ‘ λ³μμ μ κ·Όν μ μμ(3,4,5) NONE
μ λ ₯λ°μ κ°λ³ μΈμμ κ°μλ₯Ό μ νν μλ€λ©΄, x, y, *z = argsμ²λΌ μΈν¨νΉ κ°λ₯(3, 4, [5])
def asterisk_test_2(*args): s,y,*z = args return x,y,z print(asterisk_test_2(3,4,5,10,20))
*λ κΈ°λ₯μ΄ λ€μνμ¬ μΈν¨νΉν λλ κ°μ κ°λ³ μΈμμ ννλ‘ λ°μ μ μμ(3,4,,[5,10,20])
- μ΄λ¬ν νΉμ§μ μ κΈ°μ΅νλ©΄ ν¨μμ λ³μ μ¬μ©μ κ°λ³ μΈμλ₯Ό μ μ©νκ² μ¬μ© κ°λ₯
- λ§μ½ *zκ° μλ μνμμ asterisk_test_2(3, 4, 5. 10. 20)μΌλ‘ λ³κ²½νμ¬ μ½λλ₯Ό μ€ννλ©΄ μΈν¨νΉμ κ°μκ° λ§μ§ μκΈ° λλ¬Έμ μ€λ₯ λ°μ
- def asterisk_test_2(*args): s,y,*z = args return x,y,z print(asterisk_test_2(3,4,5))
- κ°λ³μΈμ *λ λ°λμ μΌλ°μ μΈ ν€μλ μΈμμ λν μ μΈμ΄ λͺ¨λ λλ ν λ§μ§λ§μ μ μΈλμ΄μΌν¨
- def asterisk_test(a, b, *args): print(args) print(asterisk_test(1,2,3,4,5))
- μ¬κΈ°μ *argsλ₯Ό κ°λ³ μΈμλΌκ³ ν¨
- μλ₯Ό λ€μ΄, νμ κ°μκ° μ ν΄μ§μ§ μμ λ€νλ°©μ μμ λ§μ μ°μ°, κ³ κ°μ΄ 물건μ μΌλ§λ ꡬ맀ν μ§ λͺ¨λ₯΄λ λ§νΈ κ³μ°κΈ°μμ ν©μ°μ μννλ μ°μ° λ±μ μ¬μ©
- κ°λ³ μΈμ(variable-length arguments) : asteriskλΌκ³ λΆλ¦
- ν€μλ κ°λ³ μΈμκ°λ³ μΈμλ λ³μμ μμλλ‘ νν ννλ‘ μ μ₯λ¨, μ¬μ©ν λλ λ§€μ° κ°λ¨νμ§λ§ λ³μμ μ΄λ¦μ μ§μ ν μ μλ€λ λ¨μ μ΄λ¬ν λ¨μ μ 보μνλ λ°©λ²κ·Έλ¦¬κ³ μ
λ ₯λ κ°μ νν μλ£νμ΄ μλ λμ
λ리 μλ£ν(dictionary type)μΌλ‘ μ¬μ©ν μ μλ€. λ°°μ°μ§ μμ μ§κΈμ λμ
λ리 μλ£νμ λ³μλͺ
κ³Ό κ°μ μμΌλ‘ μ μ₯νλ λ°©μμ΄λΌκ³ μκ°νλ©΄ μ½λ€
def kwargs_Test(**kwargs): print(kwargs) print('First value is {first}'.format(**kwargs)) print('Second value is {second]'.fornat(**kwargs)) print('Third value is {third}'.format(**kwargs)) kwargs_test(first = 3, second = 4, third = 5)
ν€μλ κ°λ³ μΈμλ λ³μλͺ μΌλ‘ kwargsλ₯Ό μ¬μ©μ΄λ¬ν ννλ₯Ό λμ λ리 μλ£νμ΄λΌ νκ³ , μ€ν κ²°κ³Ό λ³μλͺ κ³Ό κ°μ΄ μμΌλ‘ μ μ₯λ κ²μ μ μ μμκ°λ³ λ³μλͺ μ λ°λ‘ λΆλ¬λ΄ μ¬μ©ν μλ μλλ°,μ΄λ―Έ ν€μλ κ°λ³ μΈμλ₯Ό μ¬μ©ν΄ ‘first = 3, second = 4, third = 5’ λ³μλ₯Ό ν¨μ μμ λ£μκΈ° λλ¬Έμ secondλΌλ λ³μλ₯Ό μ¬μ©ν μ μμ{'first'οΌ 3, 'second'οΌ 4, 'third': 5} First value is 3 Second value is 4 Third value is 5
- λ€μ μ½λμμ 3, 4λ κ°κ° one, twoμ ν λΉλκ³ , λλ¨Έμ§ 5, 6, 7, 8, 9λ argsμ, first = 3, second = 4*,* third = 5λ λμ λ리νμΌλ‘ kwargsμ ν λΉλλ€.
- μ 리ν΄λ³΄λ©΄, μΌλ°μ μΌλ‘ 맀κ°λ³μ, κ°λ³ μΈμ. ν€μλ κ°λ³ μΈμλ₯Ό λͺ¨λ μ¬μ©νλ©΄ λ§€κ° λ³μ, κ°λ³ μΈμ, ν€μλ κ°λ³ μΈμ μμΌλ‘ κ° κ°μ μ λΉν μμΉμ λ³μμ ν λΉ
- μ΄μ κ°λ³ μΈμμμ 보μλ―μ΄ λμ λ리 μλ£ν λ³μμ *λ₯Ό2κ° λΆμ΄λ©΄ κ°λ³ λ³μλ‘ ν리면μ ν¨μμ λ€μ΄κ°μ μμΌλ©° μΈν°ν리ν°λ λ€μκ³Ό κ°μ΄ ν΄μ
- μ΄ μ½λλ print() ν¨μλ‘ μΆλ ₯ν λ λ³μ kwargsμ μλ second λ³μλ₯Ό μ¬μ©νκ³ μλ κ²
- print('Second value is {second}’.format(**kwargs))μ κ°μ΄
- λ³μλͺ μ체λ μ€μνμ§ μμ§λ§, * λ λ°λμ **μ²λΌ 2κ°λ₯Ό λΆμ¬μΌ νλ€λ κ²μ κΈ°μ΅ ! kwargs_test(first = 3, second = 4, third = 5)μμ 3κ°μ ν€μλ μΈμλ₯Ό λκ²ΌμΌλ―λ‘ 2νμ print() ν¨μμμ κ·Έ μΈμλ€μ΄ {'first'οΌ 3, 'second'οΌ 4, 'third'οΌ 5} ννλ‘ μΆλ ₯
- ν€μλ κ°λ³ μΈμλ λ°λμ λͺ¨λ 맀κ°λ³μμ 맨 λ§μ§λ§, μ¦ κ°λ³ μΈμ λ€μμ μ μΈλμ΄μΌν¨
- μ΄ λ°©λ²μ 맀κ°λ³μμ μ΄λ¦μ λ°λ‘ μ§μ νμ§ μκ³ μ λ ₯νλ λ°©λ²μΌλ‘ μ΄μ κ°λ³ μΈμμλ λ¬λ¦¬ * λ₯Ό 2κ° μ¬μ©νμ¬ ν¨μμ 맀κ°λ³μλ₯Ό νμ
- ν€μλ κ°λ³ μΈμ(keyword variable-length arguments) :
μ’μ μ½λλ₯Ό μμ±νλ λ°©λ²
- μ’μ μ½λμ μλ―Έμ’μ νλ‘κ·Έλλ¨Έκ° λκΈ° μν΄μλ μ¬λμ΄ μ΄ν΄ν μ μλ νλ‘κ·Έλ¨ μ½λλ₯Ό λ§λ€λΌλ μ‘°μΈμ΄λ¬ ν κ²μ κ°λ μ±μ΄λΌ νλ©° κ²°κ΅ νλ‘κ·Έλ¨ μ½λλ λ§μ μ¬λμ΄ μ½κ² μ½κ³ μ΄ν΄ν μ μλλ‘ κ°λ μ±μ΄ μ’μμΌ νλ€
- λ€μ λ§ν΄ λ€λ₯Έ μ¬λμ΄ λ΄κ° μμ±ν μ½λλ₯Ό κ΅μ₯ν μ½κ² μ΄ν΄ν μ μλλ‘ νλ‘κ·Έλ¨μ μμ±ν΄μΌ νλ€λ λ»,
- "μ»΄ν¨ν°κ° μ΄ν΄ν μ μλ μ½λλ μ΄λ λ°λ³΄λ λ€ μ§€ μ μλ€. μ’μ νλ‘κ·Έλλ¨Έλ μ¬λμ΄ μ΄ν΄ν μ μλ μ½λλ₯Ό μ§ λ€” - λ§ν΄ νμΈλ¬
- μ½λ© κ·μΉ
- κΈ°λ³Έ μ½λ© κ·μΉ
- λ€μ¬μ°κΈ°λ4 μ€νμ΄μ€
- ν μ€μ μ΅λ 79μκΉμ§
- λΆνμν 곡백μ μμ κΈ°
- PEP 8 μ½λ© κ·μΉ
- = μ°μ°μλ 1μΉΈ μ΄μ λμ°μ§ μλλ€.
- variable_example = 12 # νμ μ΄μμΌλ‘ λΉμΉΈμ΄ λ§μ variable_example = 12 # μ μμ μΈ λμ΄μ°κΈ°
- μ£Όμμ νμ κ°±μ νκ³ λΆνμν μ£Όμμ μμ νλ€.
- μλ¬Έμ 1, λλ¬Έμ O, λλ¬Έμ Iλ μ¬μ©μ κΈνλ€.
- 1100 = "Hard to Understand" # λ³μ ꡬλΆνκΈ° μ΄λ €μ
- ν¨μλͺ μ μλ¬Έμλ‘ κ΅¬μ±νκ³ , νμνλ©΄ λ°μ€λ‘ ꡬλΆνλ€.
- νμ΄μ¬ κ°λ°μκ° μ§μ μ ν κ·μΉ, κΌ PEP 8μ λ§μΆ° μ½λ©ν νμλ μμ
μλ μ½λ μ λ ₯ ν ‘test_flake.py’λ‘ μ μ₯cmd μ°½μ λ€μκ³Ό κ°μ΄ μ λ ₯μ κ° μ½λμ μμ λ°©λ² μλ €μ€conda install -c anaconda flake8
- κΈ°λ³Έ μ½λ© κ·μΉ
- flake8 test_flake.py
- 1L0O = "123" for i in 10 : print('Hello')
- flake8μ μ€μΉνκΈ° μν΄μλ λ¨Όμ cmd μ°½μ λ€μκ³Ό κ°μ΄ μ λ ₯
- </aside>
- ν¨μ κ°λ° κ°μ΄λλΌμΈ
- ν¨μ μ΄λ¦
- ν¨μ λ΄μ©μ κ°λ₯νλ©΄ μ§§κ² μμ±ν κ²(μ€ μλ₯Ό μ€μΌ κ²)
- ν¨μ μ΄λ¦μ ν¨μμ μν κ³Ό μλλ₯Ό λͺ νν λλ¬λΌ κ²
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
- νλμ ν¨μμλ μ μ¬ν μν μ νλ μ½λλ§ ν¬ν¨μμΌμΌ ν¨
- ν¨μλ₯Ό λ§λ€μ΄μΌ νλ κ²½μ°
- 곡ν΅μΌλ‘ μ¬μ©λλ μ½λλ₯Ό ν¨μλ‘ λ³ν
μ΄μ κ²½μ° ν¨μ λ§λ€μ΄ μ¬μ©νλ©΄ μ’μa =52 if (a >3)οΌ print('Hello World') print('Hello TEAMLAB') if (a > 4)οΌ print('Hello World') print('Hello TEAMLAB') if (a > 5): print('Hello World') print('Hello TEAMLAB')
- def print_hello()οΌ print("Hello World") print('Hello TEAMLAB') a =5 if (a > 3)οΌ print_hello() if (a > 4): print_hello() if (a >5): print_heUo()
- ex. print (’Hello World’), print(’Hello TEAMLAB’) μ½λ λ°λ³΅
- 볡μ‘ν λ‘μ§μ΄ μ¬μ©λμμ λ μλ³ κ°λ₯ν μ΄λ¦μ ν¨μλ‘ λ³ν
μ΄ κ²½μ°μλ ν¨μ λ§λ€μ΄ μ¬μ©νλ κ²μ΄ μ’μν¨μλ₯Ό κ°λ°νλ μ μ₯μμλ μ΄λ»κ² μμ±νλ 볡μ‘ν λ‘μ§μ μμ±ν΄μΌ νμ§λ§, ν¨μλ₯Ό μ¬μ©νλ μ μ₯μμλ κ°λ¨ν μΈμμ λν μ λ³΄λ§ μλ©΄ λλ―λ‘ λ§€μ° μ μ©νλ€.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))
- 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(l,-2,1))
- ex. μ΄μ°¨λ°©μ μμ κ·Όμ ꡬνλ κ·Όμ 곡μ μ¬μ©
- 곡ν΅μΌλ‘ μ¬μ©λλ μ½λλ₯Ό ν¨μλ‘ λ³ν
- ν¨μ μ΄λ¦
'π μ€ν°λ > νμ΄μ¬ μ€ν°λ κ°μμλ£' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[1ν/μ§λ€μΈ] 5μ°¨μ νμ΄μ¬ μ€ν°λ - ν¨μ (0) | 2023.04.06 |
---|---|
[1ν/νκ·λ¦Ό] 5μ°¨μ νμ΄μ¬ μ€ν°λ - ν¨μ (0) | 2023.04.06 |
[3ν/κΉκ²½μ] 5μ°¨μ νμ΄μ¬ μ€ν°λ - ν¨μ (0) | 2023.04.05 |
[2ν/κΉμΈμ°] 5μ°¨μ νμ΄μ¬ μ€ν°λ - ν¨μ (0) | 2023.04.05 |
[4ν/κΉλ―Όν] 4μ°¨μ νμ΄μ¬ μ€ν°λ - λ°λ³΅λ¬Έ (0) | 2023.04.05 |