์ŠคํŒŒ๋ฅดํƒ€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„(25.12.01~)

์ŠคํŒŒ๋ฅดํƒ€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„_๋ณธ์บ ํ”„_data11๊ธฐ ๊น€์„ ์˜_TIL_Day 14

0๏ธโƒฃ 2026. 1. 12. 22:12

<์˜ค๋Š˜์˜ ํ•™์Šต>

  • ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ ์„ธ์…˜ 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))

<๋А๋‚€ ์ >

 

์ฒ˜์Œ ์ˆ˜๋„์ฝ”๋“œ๋ฅผ ์ œ๋Œ€๋กœ(?) ์ž‘์„ฑํ•ด์„œ ํ•ด๋ดค๋Š”๋ฐ

์ง„์งœ ์ฝ”๋“œ ์ž‘์„ฑ ๋งŒ๋งŒ์น˜ ์•Š๊ฒŒ ์–ด๋ ค์› ๋‹ค.

์ฝ”๋“œ๋ฅผ ๋จผ์ € ์ž‘์„ฑํ•  ๋•Œ๋Š” "์ด๊ฑด ์ด๊ฑฐ๊ณ  ์ด๊ฑด ์—ฌ๊ธฐ ๊ฐ€๋‹ˆ๊นŒ... ์ด ๋ณ€์ˆ˜๊ฐ€ ์–ด๋”” ์žˆ๋˜ ๊ฑฐ๋”๋ผ" ํ•˜๋ฉด์„œ ์ ์—ˆ๋Š”๋ฐ

๊ทธ๋Ÿฐ ๊ฑฐ ์—†์ด ๊ตฌ์กฐ๋ฅผ ๋จผ์ € ์งœ๋ ค๊ณ  ํ•˜๋‹ˆ๊นŒ ์˜คํžˆ๋ ค ๋” ๋ง‰๋ง‰ํ–ˆ๋‹ค.

์ฝ”๋“œ์˜ ์“ฐ์ž„์ƒˆ์™€ ๊ตฌ์กฐ๋ฅผ ์ •ํ™•ํžˆ ์•Œ์•„์•ผ๋งŒ ์“ธ ์ˆ˜ ์žˆ๋Š” ๊ฑฐ์˜€๋‹ค๋Š” ๊ฑธ ์•Œ์•˜๋‹ค.

๋•๋ถ„์— ์ฝ”๋“œ ์ „์ฒด๋ฅผ ๊ตฌ์ƒํ•˜์ง€๋Š” ๋ชปํ•œ๋‹ค๋Š” ๊ฑธ ๊นจ๋‹ฌ์•˜๋‹ค.

๋” ์ •์ง„ํ•˜์—ฌ๋ผ..