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

[๋ฌธ์ œํ’€์ด] Python | ๋ฐ˜๋ณต๋ฌธ, ์กฐ๊ฑด๋ฌธ ํ™œ์šฉํ•ด์„œ BMI ์ง€์ˆ˜๋กœ ๊ฑด๊ฐ• ์ƒํƒœ ํŒ์ •

0๏ธโƒฃ 2026. 1. 8. 01:27

๊ตณ์ด ๊ถ๊ธˆํ•ด ํ•ด์„œ

๋จธ๋ฆฌ๊ฐ€ ํ„ฐ์งˆ ๊ฒƒ ๊ฐ™์•„์„œ ์ •๋ฆฌํ•˜๋Š”

์–ด๋ ต๋‹ค ์–ด๋ ค์›Œ ๋ฌธ์ œํ’€์ด


์›๋ž˜ ๋ฌธ์ œ)
1. ์‚ฌ์šฉ์ž์—๊ฒŒ **๋ชธ๋ฌด๊ฒŒ(kg)**์™€ **ํ‚ค(cm)**๋ฅผ ๊ฐ๊ฐ ์ž…๋ ฅ๋ฐ›์œผ์„ธ์š”.
2. BMI ์ง€์ˆ˜๋ฅผ `๋ชธ๋ฌด๊ฒŒ / (ํ‚ค m ๋‹จ์œ„²)` ๊ณต์‹์œผ๋กœ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ( ์ œ๊ณฑ : `๋‹จ์œ„²` → ** 2 )
3. ๋‹ค์Œ ๋ฒ”์œ„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ฑด๊ฐ• ์ƒํƒœ๋ฅผ ์ถœ๋ ฅํ•˜์„ธ์š”.

 

โš ๏ธ์•„๋ž˜๋Š” ํŠœํ„ฐ๋‹˜์ด ์ž‘์„ฑํ•œ ์ฝ”๋“œ. ๋‚ด๊ฐ€ ์“ด ๊ฑด ํ‹€๋ ค์„œ ๐Ÿฅน ์•„๋ž˜ ์ •๋‹ต ์ฝ”๋“œ๋กœ ํ™œ์šฉ
๋‚ด๊ฐ€ ์“ด ์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ!

weight = float(input("๋ชธ๋ฌด๊ฒŒ(kg): "))
height = float(input("ํ‚ค(cm): "))

if weight <= 0 or height <= 0:
    print("์ž˜๋ชป๋œ ์ž…๋ ฅ์ž…๋‹ˆ๋‹ค.")
else:
    height_m = height / 100   # cm → m ๋‹จ์œ„ ๋ณ€ํ™˜
    bmi = weight / (height_m ** 2)

    if bmi < 18.5:
        status = "์ €์ฒด์ค‘"
    elif bmi < 23:
        status = "์ •์ƒ"
    elif bmi < 25:
        status = "๊ณผ์ฒด์ค‘"
    else:
        status = "๋น„๋งŒ"

    print(f"BMI: {bmi} → {status}")

 

๐Ÿง
๋ฌธ์ž๋ฅผ ์ž…๋ ฅํ•˜๋ฉด(ex. kg, cm), ์ˆซ์ž๋งŒ ์ž…๋ ฅํ•˜๋„๋ก ์•ˆ๋‚ดํ•˜์ž.
์ด์ƒ๊ฐ’ ์ž…๋ ฅ ์‹œ, ๋‹ค์‹œ ์ถœ๋ ฅํ•˜๋„๋ก ์•ˆ๋‚ด๋ฌธ๊ณผ ์ž…๋ ฅ์นธ์„ ์ถœ๋ ฅํ•˜์ž.
๋งž๊ฒŒ ์ž…๋ ฅ ์‹œ, ์ž…๋ ฅํ•œ ๊ฐ’๊ณผ BMI๊ฐ’์„ ๋ชจ๋‘ ๋ณด์—ฌ์ฃผ์ž.

์‹œ๋„ํ•œ ์ฝ”๋“œ

  ###๊ธ€์ž๋ฅผ ์ž…๋ ฅํ–ˆ์„ ๋•Œ ์˜ค๋ฅ˜ ๋Œ€์‘###
while True :
  try :
    weight = input("๋ชธ๋ฌด๊ฒŒ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”(์ˆซ์ž๋งŒ): ")
    height = input("ํ‚ค๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”(์ˆซ์ž๋งŒ): ")
  
    w = int(weight)
    h = int(height)
  except ValueError :
    print("์ˆซ์ž๋งŒ ์ž…๋ ฅํ•˜์„ธ์š”.")

# ์ˆซ์ž๋งŒ ์ž˜ ์ž…๋ ฅํ–ˆ์„ ๋•Œ
  BMI = w / (h / 100 **2)

  if w < 0 or h < 0 :
    print("๊ฐ’์ด ์ด์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.")
  elif 0 <= BMI and BMI < 18.5 :
    print(f"๋ชธ๋ฌด๊ฒŒ(kg): {w}")
    print(f"ํ‚ค(cm): {h}")
    print(f"MBI: {BMI} -> ์ €์ฒด์ค‘์ž…๋‹ˆ๋‹ค.")
  elif 18.5 <= BMI and BMI < 23 :
    print(f"๋ชธ๋ฌด๊ฒŒ(kg): {w}")
    print(f"ํ‚ค(cm): {h}")
    print(f"MBI: {BMI} -> ์ •์ƒ์ž…๋‹ˆ๋‹ค.")
  elif 23 <= BMI and BMI < 25 :
    print(f"๋ชธ๋ฌด๊ฒŒ(kg): {w}")
    print(f"ํ‚ค(cm): {h}")
    print(f"MBI: {BMI} -> ๊ณผ์ฒด์ค‘์ž…๋‹ˆ๋‹ค.")
  else : 
    print(f"๋ชธ๋ฌด๊ฒŒ(kg): {w}")
    print(f"ํ‚ค(cm): {h}")
    print(f"MBI: {BMI} -> ๋น„๋งŒ์ž…๋‹ˆ๋‹ค.")
<์˜ค๋‹ต๋…ธํŠธ>
์ „์ฒด์ ์œผ๋กœ ์ฝ”๋“œ ์‹คํ–‰ ๊ตฌ์กฐ ๋‹ค์‹œ ์งœ์•ผ ํ•จ.
โ— ๋ฌธ์ž์—ด ์ž…๋ ฅ → print("์ˆซ์ž๋งŒ ์ž…๋ ฅํ•˜์„ธ์š”.") + ๊ณ„์‚ฐ๊นŒ์ง€ ๋จ 
     ์ž‘์„ฑ ์˜๋„๋Œ€๋กœ ์ฝ”๋“œ ์‹คํ–‰ X, while ๋ฐ˜๋ณต ๊ตฌ๊ฐ„ ์„ค์ •์ด ์ด์ƒํ•จ.
โ— **2 ์‚ฌ์šฉ๋ฒ• ๋ฏธ์ˆ™์ง€
โ— ๋ชธ๋ฌด๊ฒŒ, ํ‚ค, BMI ์•ˆ๋‚ดํ•˜๋Š” print() ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ.

 

continue :
for๋‚˜ while๊ฐ™์€ ๋ฐ˜๋ณต๋ฌธ ์•ˆ์—์„œ ํŠน์ • ์กฐ๊ฑด์ด ๋งŒ์กฑ๋  ๋•Œ ํ˜„์žฌ ๋ฐ˜๋ณต์„ ์ฆ‰์‹œ ์ค‘๋‹จํ•˜๊ณ  ๋‹ค์Œ ๋ฐ˜๋ณต์œผ๋กœ ๋„˜์–ด๊ฐ€๋Š” ์ œ์–ด๋ฌธ

โ—
1. if w <= 0 or h <= 0 :
    "์ž…๋ ฅํ•œ ๊ฐ’์ด ์ด์ƒ์น˜์ด๋ฉด" (True) → if ์กฐ๊ฑด๋ฌธ ์•ˆ์— ์žˆ๋Š” ์ฝ”๋“œ๋“ค์ด ์‹คํ–‰๋จ.
2. print("๊ฐ’์ด ์ด์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.\n")
    ๋ฌธ์ž์—ด ์ถœ๋ ฅ๋จ.
3. continue
    "์‹คํ–„๋จ. ์ด๋ฒˆ ๋ฐ˜๋ณต์€ ์ฒ˜๋ฆฌ ์™„๋ฃŒ. → ๋ฐ˜๋ณต๋ฌธ ๋งจ ์ฒ˜์Œ์œผ๋กœ ๊ฐ€์„œ ํ•œ๋ฒˆ ๋” ์ฒ˜์Œ๋ถ€ํ„ฐ ์‹คํ–‰ํ•˜์ž."

    ๐Ÿšจ์ฃผ์˜!!
    continue๋Š” if ์กฐ๊ฑด์˜ ๊ฐ’์ด True๋ผ์„œ ์‹คํ–‰ X
    if ์กฐ๊ฑด์ด True์ด๋ฉด ๊ทธ ์•ˆ์˜ ์ฝ”๋“œ๋“ค์ด ์‹คํ–‰ → ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ continue๋„ ์‹คํ–‰๋จ.

โ— ์•„๋ž˜ ์ฝ”๋“œ : ๋ชจ๋“  ๊ฒฝ์šฐ์— ๊ฐ’๋งŒ ๋‹ค๋ฅด๊ฒŒ ๋“ค์–ด๊ฐ€๋‹ˆ๊นŒ, f-string์œผ๋กœ ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌ
print(f"\n๋ชธ๋ฌด๊ฒŒ(kg): {w}")
print(f"ํ‚ค(cm): {h}")
print(f"BMI: {BMI:.1f} -> ", end="")

โ— try except ์šฉ๋„
๋ณ€์ˆ˜ weight์™€ height๋ฅผ int๋กœ ํ˜•๋ณ€ํ™˜ ์‹œ, ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋œ ๋ฌธ์ž์—ด์„ ๋ณ€ํ™˜ํ•˜๋ ค๊ณ  ํ•  ๋•Œ
ValueError ๋ฐœ์ƒ.

 

while True:
    try:
        weight = input("๋ชธ๋ฌด๊ฒŒ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”(์ˆซ์ž๋งŒ): ")
        height = input("ํ‚ค๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”(์ˆซ์ž๋งŒ): ")

        w = int(weight)
        h = int(height)

      
        if w <= 0 or h <= 0:
            print("๊ฐ’์ด ์ด์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.\n")
            continue

     
        BMI = w / ((h / 100) ** 2)

     
        print(f"\n๋ชธ๋ฌด๊ฒŒ(kg): {w}")
        print(f"ํ‚ค(cm): {h}")
        print(f"BMI: {BMI:.1f} -> ", end="")

     
        if BMI < 18.5:
            print("์ €์ฒด์ค‘์ž…๋‹ˆ๋‹ค.")
        elif BMI < 23:
            print("์ •์ƒ์ž…๋‹ˆ๋‹ค.")
        elif BMI < 25:
            print("๊ณผ์ฒด์ค‘์ž…๋‹ˆ๋‹ค.")
        else:
            print("๋น„๋งŒ์ž…๋‹ˆ๋‹ค.")

        break  # ์ •์ƒ ์ž…๋ ฅ ํ›„ ์ข…๋ฃŒ

    except ValueError:
        print("์ˆซ์ž๋งŒ ์ž…๋ ฅํ•˜์„ธ์š”.\n")