๊ตณ์ด ๊ถ๊ธํด ํด์
๋จธ๋ฆฌ๊ฐ ํฐ์ง ๊ฒ ๊ฐ์์ ์ ๋ฆฌํ๋
์ด๋ ต๋ค ์ด๋ ค์ ๋ฌธ์ ํ์ด
์๋ ๋ฌธ์ )
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")