<์ค๋์ ํ์ต>
- ํ์ด์ฌ ๋ผ์ด๋ธ ์ธ์ 4ํ์ฐจ
- 4ํ์ฐจ ๋ณต์ต๊ณผ์ & ์ฐ์ต๊ณผ์
- AI ํ์ฉ ๊ณต๋ถ๋ฒ ๋ผ์ด๋ธ ์ธ์
<ํ์ต๋ด์ฉ ์ ๋ฆฌ>
# ํ์ด์ฌ ์ธ์ 4ํ์ฐจ
1. ํจ์ (Function)
: ํ๋ก๊ทธ๋จ ๋ด์์ ๋ฐ๋ณตํด์ ์ฌ์ฉํ ์ฝ๋ ์กฐ๊ฐ์ ํจ์๋ก ์ ์ → ํ์ํ ๋๋ง๋ค ํจ์ ์ด๋ฆ์ ํธ์ถํ์ฌ ํด๋น ์ฝ๋๋ฅผ ์คํ
def ํจ์์ด๋ฆ(๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์2, ...):
# ํจ์๊ฐ ์ํํ ๋ฌธ์ฅ๋ค
# ...
return ๋ฐํ๊ฐ
1-1. ๋งค๊ฐ๋ณ์ vs ์ธ์
- ๋งค๊ฐ๋ณ์(Parameter): ํจ์ ์ ์์ ์ฌ์ฉ๋๋ ๋ณ์ (์ธ๋ถ์์ ๊ฐ์ ๋ฐ์์ ํจ์์์ ์ฌ์ฉํ๋ ๊ฐ)
- ๋งค๊ฐ๋ณ์ ์๋ต ๊ฐ๋ฅ! = ๊ทธ ํจ์๋ฅผ ๊ทธ๋ฅ '์คํํด์ค.' - ์ธ์(Argument): ์ค์ ๋ก ํจ์์ ๋๊ธฐ๋ ๊ฐ. ๊ณ์ฐ์ ์ฌ์ฉ๋จ.
1-2. return ๋ฐํ๊ฐ
- return ๋ฌธ์ผ๋ก ํจ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ (return ์๋ต ๊ฐ๋ฅ! → print(ํจ์์ด๋ฆ) Output: None)
- return ์คํ ์ ํจ์๋ ์ฆ์ ์ข ๋ฃ (๋ท์ค์ ์คํ๋์ง ์์.)
- ๋ฐํ๊ฐ 0๊ฐ: None / ์ฌ๋ฌ ๊ฐ: (ํํ) ํํ๋ก ์ถ๋ ฅ
:: ๋ฐํ๊ฐ์ด ์๋ ํจ์์ ์ ::
โช๏ธ print("Hello,", name)์ ์ถ๋ ฅ๊ฐ์ด์ง
โช๏ธ greet("Alice")์ ๋ฐํ๋ ๊ฐ์ด ์๋.:: ๋ฐํ๊ฐ์ด ์ฌ๋ฌ ๊ฐ์ธ ํจ์์ ์ ::
โช๏ธ q, r = divide_and_remainder(10, 3)
divide_and_remainder() ํจ์์์ quotient์ remainder ๊ฐ์ด ํํ ํํ๋ก ๋ฐํ๋จ. →
๊ฐ์ด ๊ฐ๊ฐ q, r์ ์ ์ฅ
1-3. ์ง์ญ๋ณ์(local) vs ์ ์ญ๋ณ์(global)
: scope(๋ณ์๊ฐ ํ๋ก๊ทธ๋จ ๋ด์์ ์ฐธ์กฐ๋๊ณ ์ฌ์ฉ๋ ์ ์๋ ์ ํจ ๋ฒ์)๊ฐ ๋ค๋ฆ
- ์ง์ญ๋ณ์(local) :
ํจ์ ์์์ ์ ์ธ๋ ๋ณ์
= ํด๋น ํจ์ ๋ด๋ถ์์๋ง ์ ์ฉ๋๋ ๋ณ์ - ์ ์ญ๋ณ์(global) :
ํจ์ ๋ฐ์์ ์ ์ธ๋ ๋ณ์
= ์ฝ๋์ ์ด๋ ์์น์์๋ ์ ๊ทผ์ด ๊ฐ๋ฅํ ๋ณ์
โ
์ค์ต ๋ฌธ์ 3 : ํ์ ๊ณ์ฐ ํจ์ grade_report
ํ๋ฃจ ์ฃ์ผ ์ด๊ฑฐ ํจ..
scores = {"Alice": 85, "Bob": 92, "Charlie": 67, "Dave": 58}
def grade_report(stu_dict) :
"""dict -> ํ์ ๋ฐํํ๋ ํจ์"""
for v in list(stu_dict.values()) :
if v >= 90 :
return "A"
elif v >= 80 :
return "B"
elif v >= 70 :
return "C"
elif v >= 60 :
return "D"
else :
return "F"
new_grade = {name: "" for name in scores.keys()}
for key in new_grade.keys() :
new_grade[key] = grade_report(scores) #value ํจ์๋ก ์ฒ๋ฆฌ.
print(new_grade)
<์ค๋ต๋ ธํธ>
โช๏ธ return์ ์ญํ : “๊ฐ ๋ฐํ + ํจ์ ์ฆ์ ์ข ๋ฃ”
return์ ์คํ๋๋ฉด ๋ฌด์กฐ๊ฑด ๊ทธ ๋ฐ๋ณต๋ฌธ ์ข ๋ฃ. ๋ฐ๋ณต๋ฌธ ์ฒ์์ผ๋ก ๋์๊ฐ๋ ๊ฒ ์๋๋ผ ๋ฌด์กฐ๊ฑด ์คํํ๊ณ ๋ค๋ฅธ ์ฝ๋๋ก ๋์ด๊ฐ!!
(์ค๋ตํ์ด์ฒ๋ผ, for๋ฌธ ์์ return ์์ผ๋ฉด ์ฒซ๋ฒ์งธ ์กฐ๊ฑด๋ง ๋ณด๊ณ ๋ค๋ฅธ ๊ฐ์ ๊ฒ์ฌ ์ ํจ.)
โช๏ธ ์๋ก์ด ๋์ ๋๋ฆฌ ํ์ํ๋ฉด dict()๋ก ์๋ก ๋ง๋ค์ง X
๋น์ด์๋ ๋์ ๋๋ฆฌ ๋ง๋ค๊ณ , ๊ทธ ์์ ์ถ๊ฐํ๋ ๋ฐฉ์!!
โช๏ธ for k in list(stu_dict.keys()) = for k in stu_dict
๋์ ๋๋ฆฌ์์ ๋ณ์๋ฅผ ํ๋์ฉ ๊บผ๋ธ๋ค = key๋ฅผ ํ๋์ฉ ๊บผ๋ธ๋ค.
scores = {"Alice": 85, "Bob": 92, "Charlie": 67, "Dave": 58}
#๋์
๋๋ฆฌ๋ก ๋ฐํํด์ผ ํจ.
# ๋ชจ๋ ํ์์ ์ ์๋ฅผ ํ์
ํจ.
def grade_report(stu_dict) :
"""dict -> ํ์ ๋์
๋๋ฆฌ ๋ฐํํ๋ ํจ์"""
new_grade = {}
for k in stu_dict:
if stu_dict[k] >= 90 :
new_grade[k] = "A"
elif stu_dict[k] >= 80 :
new_grade[k] = "B"
elif stu_dict[k] >= 70 :
new_grade[k] = "C"
elif stu_dict[k] >= 60 :
new_grade[k] = "D"
else :
new_grade[k] = "F"
return new_grade
print(grade_report(scores))
<๋๋ ์ >

์ฒ์ ์๋์ฝ๋๋ฅผ ์ ๋๋ก(?) ์์ฑํด์ ํด๋ดค๋๋ฐ
์ง์ง ์ฝ๋ ์์ฑ ๋ง๋ง์น ์๊ฒ ์ด๋ ค์ ๋ค.
์ฝ๋๋ฅผ ๋จผ์ ์์ฑํ ๋๋ "์ด๊ฑด ์ด๊ฑฐ๊ณ ์ด๊ฑด ์ฌ๊ธฐ ๊ฐ๋๊น... ์ด ๋ณ์๊ฐ ์ด๋ ์๋ ๊ฑฐ๋๋ผ" ํ๋ฉด์ ์ ์๋๋ฐ
๊ทธ๋ฐ ๊ฑฐ ์์ด ๊ตฌ์กฐ๋ฅผ ๋จผ์ ์ง๋ ค๊ณ ํ๋๊น ์คํ๋ ค ๋ ๋ง๋งํ๋ค.
์ฝ๋์ ์ฐ์์์ ๊ตฌ์กฐ๋ฅผ ์ ํํ ์์์ผ๋ง ์ธ ์ ์๋ ๊ฑฐ์๋ค๋ ๊ฑธ ์์๋ค.
๋๋ถ์ ์ฝ๋ ์ ์ฒด๋ฅผ ๊ตฌ์ํ์ง๋ ๋ชปํ๋ค๋ ๊ฑธ ๊นจ๋ฌ์๋ค.
๋ ์ ์งํ์ฌ๋ผ..

