ì¶ì² - ë°ìŽí° 곌íì ìí íìŽì¬ íë¡ê·žëë°
íìµ ëª©í
- íšì륌 ì ìžíë ë°©ë². íšìì ì€í ìì. íšìì 4ê°ì§ ííì ëíŽ ìì볞ë€.
- íšì륌 ížì¶íë ë°©ì곌 ë³ìì ì¬ì© ë²ìì ëíŽ íìµíê³ . ì¬ê· íšìì ëíŽ ìŽíŽíë€.
- íšìì ìžììž í€ìë ìžì, ëíŽíž ìžì, ê°ë³ ìžì, í€ìë ê°ë³ ìžìì ëíŽ ìì볞ë€.
- ì¢ì ìœëì ì믞륌 ìŽíŽíê³ , ìœë© ê·ì¹ê³Œ íšì ê°ë° ê°ìŽëëŒìžì ëíŽ íìµíë€
01 íšì êž°ìŽ
- íšìì ê°ë
곌 ì¥ì
- íšì(function)ë?
- ìŽë€ ìŒì ìííë ìœëì ë©ìŽëŠ¬, ëë ìœëì 묶ì
ex) ëíì ëìŽë¥Œ 구íë íë¡ê·žëšìì ì¬ê°íì ëìŽë¥Œ 구íë ìì ìŽ ìë€ë©Ž, íŽë¹ ìì ì íšìííì¬ íìí ëë§ë€ ížì¶íŽì ì¬ì©
- ìŽë€ ìŒì ìííë ìœëì ë©ìŽëŠ¬, ëë ìœëì 묶ì
- íšì륌 ë§ë€ìì ë ì¥ì
- íìí ëë§ë€ ížì¶ ê°ë¥
íšìë ë°ë³µì ìŒë¡ ìííŽìŒ íë ì 묎륌 í ë²ë§ ìì±íŽ ëê³ íìí ëë§ë€ ížì¶íì¬ ì¬ì©í ì ìë€.
→ ìœë륌 ìì í ë ê°ì ìì ì ì¬ë¬ ë² ë°ë³µíì§ ììë ëë€. - ë
ŒëŠ¬ì ìž ëšìë¡ ë¶í ê°ë¥
íšìë ìœë륌 ë ŒëŠ¬ì ìž ëšìë¡ ëë ì ìë€.
ex) ëíì ê³ì°íë íë¡ê·žëšì ìì±í ë ê³±ì , ë§ì , ëëì ì íë ìœë륌 ëë - ìœëì 캡ìí
캡ìí → íšìì ìží°íìŽì€ë§ ì ì ìíë©Ž ë€ë¥ž ì¬ëìŽ ìì ì ìœë륌 ìœê² ê°ì žë€ ì¬ì© ê°ë¥
ð ìží°íìŽì€ë¥Œ ì ìíë€
ìœëì ì ë ¥ëë ì ë ¥ê°ê³Œ ìœëì ìí ê²°ê³Œìž ì¶ë ¥ê°ì ëª íí íë€ë ê²ìŽë€. íí ëžëë°ì€ëŒê³ ë íëë°, ìží°íìŽì€ê° ì ì ìë íšìëŒë©Ž ìœëì ëŽë¶ 구조륌 몰ëŒë íšì륌 ì¬ì©íë ë°ìë ì묎 묞ì ê° ìë€.
- íìí ëë§ë€ ížì¶ ê°ë¥
- íšì(function)ë?
- íšìì ì ìž
- íšì륌 ì ìžíë ë°©ë²
ëª ë ¹ë¬ž 1
ëª ë ¹ë¬ž 2
return <ë°íê°>- def
’definition’ì ì€ìë§, íšìì ì ì륌 ììíë€ë ì믞ìŽë€. - íšì ìŽëŠ
íšì ìŽëŠì ê°ë°ìê° ë§ìëë¡ ì§ì í ì ìì§ë§ ìŒë°ì ìŒë¡ íìŽì¬ ê·ì¹ì ë°ëŠ
• ì묞ìë¡ ì ë ¥íë€.
• ëìŽì°êž°ë¥Œ í 겜ì°ìë _ êž°ížë¥Œ ì¬ì©íë€. ex) save_model
• ìì ì ëíëŽêž° ìíŽ ëì¬ì ëª ì¬ë¥Œ íšê» ì¬ì©íë 겜ì°ê° ë§ë€. ex) find_number
• ìžë¶ì ê³µê°íë íšììŒ ê²œì° ì€ìë§ì ì¬ì©íì§ ìê³ , ëª ë£í ìŽëŠìŒë¡ ì íë€. - 맀ê°ë³ì(parameter)
íšììì ì ë ¥ê°ìŒë¡ ì¬ì©íë ë³ì륌 ì믞íë©°, 1ê° ìŽìì ê°ì ì ì ì ìë€. - ëª
ë ¹ë¬ž
ëª ë ¹ë¬žì ë°ëì ë€ì¬ì°êž°í í ìœë륌 ì ë ¥íŽìŒ íë€.
ìííŽìŒ íë ìœëë ì§êžê¹ì§ ë°°ìŽ ìŒë°ì ìž ìœëì ê°ë€.
ifë for묞 ë±ì ì ìŽë¬žì ì¬ì©í ìë ìê³ , íšì ìì íšì륌 ì¬ì©íêž°ë íë€. - return ê°ì ë°ííë€ë ì믞
- íšì ìŽëŠì calculate_rectangle_area
- x, y 2ê°ì 맀ê°ë³ì륌 ì¬ì©íê³ ìë€.
- x, y륌 ê³±í ê°ì ë°ííë íšììŽë€.
íšìì ì€í ìì
→ íšìê° ì ìë def ë¶ë¶ì ì€íëì§ ìëë€. ëšì§ ì ìë§ íë ê²!!
íšìë§ íìŒì ì ì¥íê³ íìŽì¬ ëª
ë ¹ìŒë¡ ì€íì쌰ì ë ë³ëì ì¶ë ¥ìŽ ìŒìŽëì§ ìëë€.
ì íí ë§íë©Ž, ì묎ê²ë ì€íëì§ ìë ê²ì²ëŒ 볎ìŽì§ë§ ì€ì ë¡ë ìœë륌 ë©ëªšëŠ¬ì ì
ë¡ëíì¬ ë€ë¥ž ìœë륌 ížì¶íŽ ì¬ì©í ì ìëë¡ ì€ë¹ 곌ì ì ê±°ì¹ë€. ë§ìœ íšìì ì ìž ë¶ë¶ì ìœëì 맚 ë§ì§ë§ì ì
ë ¥íë€ë©Ž íŽë¹ ìœë ížì¶ì ì€ë¥ê° ë°ì
→ ê·ž ë€ììŒë¡ íšìê° ìííŽìŒ íë ëª
ë ¹ìŽ ì€íëë€.
ì ííë rectangle_x = 10곌 rectangle_y = 20ìŒë¡ ë³ìì ê°ìŽ í ë¹ëê³ ê·ž ê°ì ì¶ë ¥íë€.
→ ê·ž ë€ì, print("ì¬ê°íì ëìŽ:", calculate_rectangle_area(rectangle_x, rectangle_y))륌 ìí
ìŽ ìœëì íµì¬ì calculate_rectangle_area(rectangle_x, rectangle_y) ë¶ë¶ìŽë€. íšì륌 ížì¶íê³ . rectangle_xì rectangle_y ë³ìì í ë¹ë ê°ìŽ calculate_rectangle_area íšìì ì
ë ¥ê°ìŽ ëë€. ê·žë¬ë©Ž ìœë return x * yì ìíŽ ë°íê° 200ìŽ ë°íëë€.
ìŠ, calculate_rectangle_area(rectangle_x, rectangle_y) ë 200ìŒë¡ ì¹íëê³ . ìŽ ê°ìŽ íë©Žì ì¶ë ¥
- íë¡ê·žëë° íšìì ìíì íšì
- íë¡ê·žëë°ììì íšìì ìíììì íšìë ë§€ì° ë¹ì·íë€.
- íšìì íí
- íšìë 맀ê°ë³ìì ë°íê°ì ì 묎ì ë°ëŒ ë€ ê°ì§ ííë¡ êµ¬ë¶íë€.
→ íšìì ííì ë°ëŒ ì¬ì©íë ë°©ë²ìŽ ë€ë¥Žë€.
- 첫 ë²ì§ž íšìë 맀ê°ë³ìì ë°íê°ìŽ 몚ë ìë 겜ì°ìŽë€.
ì ë ¥ê°ë ìê³ ë°íëë ê°ë ìì§ë§, print(5 * 7)ë¡ ìžíŽ 35ê° ì¶ë ¥ëë€. ìŽ ê²œì°ì a_rectangle_area()ê° 35ë¡ ì¹íëë ê²ìŽ ìëëŒ, ë°íê°ìŽ ìêž° ë묞ì íšì ì첎ë none ê°ì ê°ì§ë€. ëì ëŽë¶ íšììž print() íšìë¡ ìžíŽ 35ê° ì¶ë ¥ëë€. - ë ë²ì§ž íšìë 맀ê°ë³ìë ìì§ë§ ë°íê°ìŽ ìë 겜ì°ìŽë€.
b_rectangle_area()ê° ë§€ê°ë³ìë¡ x, y륌 ë겚ë°ê³ , ê·ž ê°ì ê³ì°íì¬ ì¶ë ¥íë íšììŽë€. ìì ë°íê°ìŽ ììŒë¯ë¡ b_rectangleArea(5, 7) ìŽëŒê³ ì€íììŒìŒ 35ê° ì¶ë ¥ëë ê²ìŽì§ b_rectangleArea(5, 7) ìì²Žê° 35ë¡ ì¹íëë ê²ì ìëë€. ë°íìŽ ììŒë©Ž íŽë¹ íšìë noneìŒë¡ ì¹íëë€. - ìž ë²ì§ž, ë€ ë²ì§ž íšìë ë°íê°ìŽ ìë 겜ì°ìŽë€.
c_rectangle_area()ì d_rectangle_area() íšì 몚ë, íšì ììì print() íšì륌 ìíìí€ë ê²ìŽ ìëëŒ íšì륌 ížì¶í ë print() íšì륌 ìŽì©íë€ë ê²ì ì ì ìë€. ìŠ, ë íšì 몚ë return 묞ìŒë¡ ìžíŽ 35ë¡ ì¹íëë ê²ìŽë€. ìŽë ê² returnìŽ ìë 겜ì°, íšìì ë°íê°ìŽ ìë 겜ì°ìë íšì륌 ížì¶íë ê³³ìì íšìì ë°íê°ì ë³ìì í ë¹íì¬ ì¬ì©íë ê²ìŽ ê°ë¥íë€.
02 íšì ì¬í
- íšìì ížì¶ ë°©ì
→ f(x)ì xì 5ì 3ìŽ ì
ë ¥ëë€.
íšì ìììì xì íšì ë°ììì xë ê°ì ë³ììŒê¹, ìëë©Ž ë€ë¥ž ë³ììŒê¹?
íšì ë°ì ìë ë³ì xì ë©ëªšëŠ¬ 죌ìì íšì ìì ìë ë³ì xì ë©ëªšëŠ¬ 죌ìê° ê°ìì§ ë€ë¥žì§ íìží íìê° ìë€.
íšì ììì ë³ìê° ìžìì ííë¡ ì ë ¥ë ë ë³ì륌 ížì¶íë ë°©ìì í¬ê² ë ê°ì§ë¡ ëëë€.
ì¢ ë¥ì€ëª
ê°ì ìí ížì¶ (call by value) | • íšìì ìžì륌 ëêžž ë ê°ë§ ëê¹ • íšì ëŽë¶ì ìžìê° ë³ê²œ ì ížì¶ë ë³ìì ìí¥ì ì£Œì§ ìì |
ì°žì¡° ížì¶ (call by referance) | • íšìì ìžì륌 ëêžž ë ë©ëªšëŠ¬ 죌ì륌 ëê¹ • íšì ëŽë¶ì ìžìê° ë³ê²œ ì ížì¶ë ë³ìê°ë ë³ê²œëš |
ë©ëªšëŠ¬ 죌ìë ë³ìê° ì ì¥ëë ê³µê°ì ê°ë¥Ží€ê³ , ê·ž ê³µê° ì첎ì ìë¡ìŽ ê°ì í ë¹íë©Ž ê·ž ê³µê°ì ê°ëŠ¬í€ê³ ìë ë€ë¥ž ë³ììë ìí¥ì ì€ë€.
íì§ë§ íìŽì¬ì ì íµì ìž ë ê°ì§ ë°©ìì íŒí©í ë°©ìì ì¬ì©íê³ ìë€.
íìŽì¬ì ê°ì²Žì 죌ìê° íšìë¡ ëìŽê°ë€ë ë»ì ê°ì²Ž ížì¶ ë°©ìì ìì©íë€. íìŽì¬ììë ê°ì²Žì 죌ì륌 íšìë¡ ëêž°êž° ë묞ì ì ë¬ë ê°ì²Žì ê°ì ë³ê²œìŽ ìì 겜ì°, ìŠ, ìë¡ìŽ ê°ì í ë¹íê±°ë íŽë¹ ê°ì²Žë¥Œ ì§ìž ëë ìí¥ì ì£Œì§ ìì§ë§ ëšìí íŽë¹ ê°ì²Žì ê°ì ì¶ê°í ëë ìí¥ì ì€ë€.
- ë³ìì ì¬ì© ë²ì
ë³ìì ì¬ì© ë²ìë ë§ ê·žëë¡ ë³ìê° ìœëìì ì¬ì©ëë ë²ì륌 ë§íëë°, íí íšì ëŽë¶ìì ì¬ì©í ê²ìžì§, ëë íë¡ê·žëš ì 첎ìì ì¬ì©í ê²ìžì§ ê·ž ë²ì륌 ê²°ì íë ê·ì¹ì ë»íë€. ìŒë°ì ìŒë¡ ë³ìì ì¬ì© ë²ì륌 ê²°ì í ëë ê³ ë €íŽìŒ í ë ê°ì§ ë³ìê° ìë€.- ì§ì ë³ì(local variable)ïŒ íšì ëŽë¶ììë§ ì¬ì©
- ì ì ë³ì(global variable)ïŒ íë¡ê·žëš ì 첎ìì ì¬ì©
- ì¬ê· íšì(recursive function)
ì¬ê· íšìë ìêž° ìì ì ë€ì ížì¶íë íšììŽë€.
ì¬ê·ì ìŽëŒë ííì ìì ì ìŽì©íŽ ë€ë¥ž ê²ì ì ìíë€ë ë»ìŽë€. ìíì ì íì곌 ê°ì íí!!!
→ í©í 늬ìŒfactorial íšììŽë€. ì ííë ‘n!’ë¡ íìíê³ n! = n x (n - 1)!ë¡ ì ìží ì ìë€. ìì ì ì«ììì 1ì© ë¹Œë©Žì ê³±íë íììŽë€. 볎íµì ì íììŽëŒê³ íë€.
→ ìœëí
factorial() íšìë nìŽëŒë ë³ì륌 ì ë ¥ 맀ê°ë³ìë¡ ë겚 ë°ì í n == 1ìŽ ìë ëê¹ì§ ì ë ¥ë n곌 nìì 1ì ëº ê°ì ì ë ¥ê°ìŒë¡ ë€ì factorial() íšì륌 ížì¶íì¬ ë°íë ê°ê³Œ ê³±íë€. ë§ìœ ì²ì ì¬ì©ìê° 5륌 ì ë ¥íë€ë©Ž ë€ì곌 ê°ì ììëë¡ ê³ì°ë ê²ìŽë€.
03 íšìì ìžì
: íšìì ì ë ¥ìŒë¡ ë€ìŽê°ë ë³ìì ë€ìí íí
- íìŽì¬ìì ìžì륌 ì¬ì©íë ë°©ë²
ì¢ ë¥ | ëŽì© |
í€ìë ìžì | íšìì ìží°íìŽì€ìì ì§ì í ë³ìëª ì ì¬ì©íì¬ íšìì ìžì륌 ì§ì íë ë°©ë² |
ëíŽíž ìžì | ë³ëì ìžìê°ìŽ ì ë ¥ëì§ ìì ë ìží°íìŽì€ ì ìžìì ì§ì í ìŽê¹ê°ì ì¬ì©íë ë°©ë² |
ê°ë³ ìžì | íšìì ìží°íìŽì€ìì ì§ì í ë³ì ìŽìžì ì¶ê° ë³ì륌 íšìì ì ë ¥í ì ìëë¡ ì§ìíë ë°©ë² |
í€ìë ê°ë³ ìžì | 맀ê°ë³ìì ìŽëŠì ë°ë¡ ì§ì íì§ ìê³ ì ë ¥íë ë°©ë² |
- í€ìë ìžì(keyword arguments)
íšìì ì ë ¥ëë 맀ê°ë³ìì ë³ìëª ì ì¬ì©íì¬ íšìì ìžì륌 ì§ì íë ë°©ë²ìŽë€.
- ëíŽíž ìžì(default arguments)
ë³ëì ìžìê°ìŽ ì ë ¥ëì§ ìì ë ìží°íìŽì€ ì ìžìì ì§ì í ìŽê¹ê°ì ì¬ì©íë ë°©ë²
맀ê°ë³ìì Ʞ볞ê°ì ì§ì íì¬ ì¬ì©íê³ , ì묎 ê°ë ìžìë¡ ëìŽê°ì§ ìì ë ì§ì ë Ʞ볞ê°ì ì¬ì©
- ê°ë³ ìžì(variable-length arguments)
íšìì ìží°íìŽì€ìì ì§ì í ë³ì ìŽìžì ì¶ê° ë³ì륌 íšìì ì ë ¥í ì ìëë¡ ì§ìíë ë°©ë²
ìœë륌 ìì±í ë ê°ë íšìì 맀ê°ë³ì ê°ì륌 ì íì§ ìììŒ íë 겜ì°ì ì¬ì©
*(asteriskëŒê³ ë¶ëŠ)ë¡ ííí ì ìëë°. *ë íìŽì¬ìì Ʞ볞ì ìŒë¡ ê³±ì ëë ì ê³± ì°ì° ìžìë ë³ì륌 묶ìŽì£Œë ê°ë³ ìžì륌 ë§ë€ ë ì¬ì©íë€.
- í€ìë ê°ë³ ìžì
ë§€ê° ë³ìì ìŽëŠì ë°ë¡ ì§ì íì§ ìê³ ì ë ¥íë ë°©ë²
ê°ë³ ìžìë ë³ìì ììëë¡ íí ííë¡ ì ì¥ëë€. ì¬ì©ì ê°ëšíì§ë§ ë³ìì ìŽëŠì ì§ì í ì ìë€ë ëšì ì 볎ìí ê²ìŽ í€ë³Žë ê°ë³ìžì
→ 맀ê°ë³ìì ìŽëŠì ë°ë¡ ì§ì íì§ ìê³ ì ë ¥íë ë°©ë²ìŒë¡ *ì 2ê° ì¬ì©íì¬ íšìì 맀ê°ë³ì륌 íì
ì ë ¥ë ê°ì íí ìë£íìŽ ìë ëì ë늬 ìë£íìŒë¡ ì¬ì©í ì ìë€.
04 ì¢ì ìœë륌 ìì±íë ë°©ë²
- ì¢ì ìœëì ì믞컎íší°ê° ìŽíŽí ì ìë ìœëë ìŽë ì ë ì€ë ¥ìŽ ëë©Ž ë§ë€ ì ìì§ë§, ì¢ì íë¡ê·žëëšžê° ëêž° ìíŽìë ì¬ëìŽ ìŽíŽí ì ìë íë¡ê·žëš ìœë륌 ë§ë€ìŽìŒ íë€.
ë€ì ë§íŽ ë€ë¥ž ì¬ëìŽ ëŽê° ìì±í ìœë륌 êµì¥í ìœê² ìŽíŽí ì ìëë¡ íë¡ê·žëšì ìì±íŽìŒ íë€ë ë»ìŽë€. ìŽë¬í ê²ì ê°ë ì±ìŽëŒê³ íë€.
ê²°êµ íë¡ê·žëš ìœëë ë§ì ì¬ëìŽ ìœê² ìœê³ ìŽíŽí ì ìëë¡ ê°ë ì±ìŽ ì¢ììŒ íë€. - ìœë© ê·ì¹
ê°ë ì±ìŽ ì¢ì ìœë륌 ìì±íêž° ìíŽìë ì¬ë¬ ê°ì§ê° íìíì§ë§, 뚌ì ì¬ë¬ ì¬ëì ìŽíŽë¥Œ ëêž° ìí ê·ì¹ìŽ íìíë€. íë¡ê·žëë°ììë ìŽë¬í ê·ì¹ì ìŒë°ì ìŒë¡ ìœë© ê·ì¹ìŽëŒ íë€. íìŽì¬ ìì Ʞ볞 ìœë© ê·ì¹ìŽ ììŒë©° ëíì ìž ê²ì ë€ì곌 ê°ë€.
• ë€ì¬ì°êž°ë 4 ì€íìŽì€
• í ì€ì ìµë 79ìê¹ì§
• ë¶íìí 공백ì ìì êž°
íìŽì¬ììë ìŽë¬í ìœë© ê·ì¹ ì€ íìŽì¬ ê°ë°ìê° ì§ì ì í ê²ìŽ ìë€.
→ PEP 8 (Python Enhance Proposal 8)
: íìŽì¬ ê°ë°ìë€ìŽ íìí íìŽì¬ì êž°ë¥ìŽë ì¬ë¬ ê°ì§ ë¶ìì ìž ê²ì ì ìí 묞ì
íì§ë§ êŒ PEP 8ì ë§ì¶° ìœë©í íìë ìì! ê°ë°íë€ ë³Žë©Ž íì ìí©ìŽë 구ì±ìì ì±í¥ìŽ 몚ë ë€ë¥Žë¯ë¡ íì ë§ëë¡ ê·ì¹ì ì íë©Ž ëë€.
ì€ì PEP 8ìë ë€ì곌 ê°ì ê·ì¹ìŽ ìë€. ê°ë¥íë©Ž ë€ì ê·ì¹ì ì§í€ë©Žì ìœë©íë ê²ìŽ ì¢ë€.- = ì°ì°ìë 1칞 ìŽì ëì°ì§ ìëë€.
- 죌ìì íì ê°±ì íê³ ë¶íìí 죌ìì ìì íë€.
- ì묞ì l, ë묞ì O, ë묞ì Ië ì¬ì©ì êžíë€.
- íšìëª ì ì묞ìë¡ êµ¬ì±íê³ , íìíë©Ž ë°ì€ë¡ 구ë¶íë€.
'ð ì€í°ë > íìŽì¬ ì€í°ë ê°ììë£' 칎í ê³ ëŠ¬ì ë€ë¥ž êž
[4í/ìŽì ì] 6ì°šì íìŽì¬ ì€í°ë - 묞ììŽ (0) | 2023.04.28 |
---|---|
[4í/ê¹ë¯Œí] 5ì°šì íìŽì¬ ì€í°ë - íšì (0) | 2023.04.13 |
[4í/ìŽì ì] 5ì°šì íìŽì¬ ì€í°ë - íšì (0) | 2023.04.06 |
[1í/ì§ë€ìž] 5ì°šì íìŽì¬ ì€í°ë - íšì (0) | 2023.04.06 |
[1í/íê·ëŠŒ] 5ì°šì íìŽì¬ ì€í°ë - íšì (0) | 2023.04.06 |