BMI calculator_streamlit

BMI calculator

  1. 입력

You

streamlit과 pycharm으로 아래 업무를 실행할거야. 차근차근 알려줘. 어떻게 해야 하는지. 그리고 코드도 알려줘. --- 과제: BMI 계산기 만들기 요구사항: 1. 사용자로부터 이름, 나이, 성별을 추가로 입력받으세요. - 이름은 `st.text_input()`를 사용하여 입력받습니다. - 나이는 `st.number_input()`을 사용하여 입력받습니다. (0~120 사이의 값으로 제한) - 성별은 `st.radio()`를 사용하여 "남성"과 "여성" 중에서 선택할 수 있게 합니다. 2. BMI 계산 결과와 함께 사용자의 이름, 나이, 성별을 출력하세요. - 예시: "홍길동님의 BMI는 23.15입니다. 나이는 30세, 성별은 남성입니다." 3. BMI에 따른 체중 범위를 시각적으로 표현해주세요. - `st.progress()` 함수를 사용하여 BMI 값을 0~40 범위로 정규화한 후, 프로그레스 바로 표시합니다. - 프로그레스 바의 색상을 BMI에 따라 변경합니다. (저체중: 파란색, 정상 체중: 초록색, 과체중: 주황색, 비만: 빨간색) 4. 사용자가 입력한 데이터를 파일로 저장할 수 있는 기능을 추가하세요. - "데이터 저장" 버튼을 클릭하면 이름, 나이, 성별, BMI 값을 한 줄로 구성하여 "bmi_data.csv" 파일에 추가합니다. - 파일에 데이터를 쓸 때는 `with` 문을 사용하여 파일을 안전하게 열고 닫습니다. 5. 사용자 친화적인 인터페이스를 위해 `st.expander()`를 사용하여 "도움말" 섹션을 추가하세요. - 도움말 섹션에는 BMI 계산기 사용 방법과 BMI 범위에 대한 설명을 포함합니다. 6. 코드에 주석을 추가하여 각 부분의 역할을 설명하세요. 힌트 : st.session을 사용하면 됩니다.


  1. 출력

여러분이 Streamlit과 PyCharm을 사용하여 BMI 계산기를 만드는 과정을 단계별로 설명하고, 필요한 코드를 제공하겠습니다. 이 코드는 Streamlit 앱으로 실행될 것이며, Streamlit은 Python을 사용하여 인터랙티브 웹 애플리케이션을 손쉽게 만들 수 있는 라이브러리입니다.

Streamlit 앱 설정

  1. PyCharm에서 프로젝트 생성 및 환경 설정

    • PyCharm을 열고 새 프로젝트를 생성하세요.

    • 프로젝트에 필요한 가상 환경을 설정하고 Streamlit 라이브러리를 설치합니다 (pip install streamlit).

  2. Streamlit 앱 코드 작성

    • 새로운 Python 파일을 생성하고, 예를 들어 app.py라고 이름을 지정합니다.

    • 아래의 코드를 입력하세요.


import streamlit as st

import pandas as pd

# BMI 계산 함수

def calculate_bmi(weight, height):

return weight / (height / 100) ** 2

# 사용자 인터페이스 설정

st.title("BMI 계산기")

# 사용자 입력 받기

with st.form("bmi_form"):

name = st.text_input("이름")

age = st.number_input("나이", min_value=0, max_value=120)

gender = st.radio("성별", ["남성", "여성"])

weight = st.number_input("체중 (kg)")

height = st.number_input("키 (cm)")

submitted = st.form_submit_button("계산")

# BMI 계산 및 결과 출력

if submitted:

bmi = calculate_bmi(weight, height)

st.write(f"{name}님의 BMI는 {bmi:.2f}입니다. 나이는 {age}세, 성별은 {gender}입니다.")

# BMI에 따른 프로그레스 바

bmi_norm = min(40, max(0, bmi)) / 40

color = "red" if bmi >= 30 else "orange" if bmi >= 25 else "green" if bmi >= 18.5 else "blue"

st.progress(bmi_norm)

st.markdown(f"<style>.stProgress > div > div > div > div {{background-color: {color};}}</style>", unsafe_allow_html=True)

# 데이터 저장 기능

if st.button("데이터 저장"):

with open("bmi_data.csv", "a") as file:

file.write(f"{name},{age},{gender},{bmi}\n")

st.success("데이터 저장 완료!")

# 도움말 섹션

with st.expander("도움말"):

st.write("""

## BMI 계산기 사용 방법

- 이름, 나이, 성별, 체중, 키를 입력하세요.

- '계산' 버튼을 누르면 BMI가 계산됩니다.

- BMI에 따라 프로그레스 바가 색상이 변경되어 건강 상태를 시각적으로 표현합니다.

- '데이터 저장' 버튼을 클릭하여 결과를 파일에 저장할 수 있습니다.

## BMI 범위

- 저체중: BMI < 18.5 (파란색)

- 정상 체중: 18.5 ≤ BMI < 25 (초록색)

- 과체중: 25 ≤ BMI < 30 (주황색)

- 비만: BMI ≥ 30 (빨간색)

""")


앱 실행 및 확인

  • PyCharm에서 터미널을 열고 streamlit run app.py 명령을 실행하여 앱을 시작합니다.

  • 웹 브라우저가 자동으로 열리며 앱이 실행되는 것을 볼 수 있습니다.

이제 Streamlit을 사용하여 BMI 계산기 앱을 성공적으로 만들고 실행할 수 있습니다. 필요에 따라 코드를 조정하거나 추가 기능을 통합할 수 있습니다


  1. 결과

1
1개의 답글

👉 이 게시글도 읽어보세요