기능을 전부 익히려니 Streamlit도 어려운 것 같다 ㅠㅠ
학습시간 09:00~02:00(당일17H/누적1927H)
import streamlit as st
st.write("Hello Streamlit!")
st.title("Title")
st.header("Header")
st.subheader("Subheader")
st.text("Text")
st.divider()

st.markdown("""
# Title(Markdown)
## Header
### Subheader
text
- A
- a

st.success("성공")
st.info("정보")
st.warning("경고")
st.error("오류")

st.metric("날씨", "10°C", delta=-2)

st.image("meerkat.jpg", width=400)
st.image("https://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Meerkat_%28Suricata_suricatta%29_Tswalu.jpg/728px-Meerkat_%28Suricata_suricatta%29_Tswalu.jpg", width=400)

name = st.text_input("이름")
description = st.text_area("전체 소감")
student_type = st.selectbox("교육과정", options=["중학생", "고등학생", "대학생"])
level = st.number_input("학년", 1, step=1)
preference = st.slider("과목 선호도", min_value=1, max_value=10)
difficulty = st.radio(
"난이도",
options=["쉬웠다", "어려웠다"],
)
is_retaking = st.checkbox("재수강 여부")

date = st.date_input("날짜")
date_str1 = date.strftime("%Y-%m-%d") ### 2026-02-02
date_str2 = date.strftime("%Y.%m.%d.") ### 2026.02.02.

clicked = st.button("확인")
st.write(clicked)
if clicked:
st.write("클릭함!")
st.link_button("네이버 바로가기", "https://naver.com")

st.table([
"도윤",
"하빈",
"유하"
])
st.table({
"아이스 커피": 4500,
"카페 모카": 5000,
"녹차": 5000
})
st.table([
{"메뉴": "아이스커피", "가격": 4500},
{"메뉴": "카페 모카", "가격": 5000},
{"메뉴": "녹차", "가격": 5000},
])

import streamlit as st
data = [
{
"날짜": "2024-01",
"평균 기온": -0.5,
"평균 최저 기온": -3.9,
"평균 최고 기온": 3.6
},
{
"날짜": "2024-02",
"평균 기온": 3.8,
"평균 최저 기온": 0.2,
"평균 최고 기온": 8.2
},
{
"날짜": "2024-03",
"평균 기온": 7,
"평균 최저 기온": 2.4,
"평균 최고 기온": 12
},
{
"날짜": "2024-04",
"평균 기온": 16.3,
"평균 최저 기온": 11.5,
"평균 최고 기온": 22.4
}
]
st.header("2024년 서울 날씨")
st.line_chart(data, x="날짜", y=["평균 기온", "평균 최저 기온", "평균 최고 기온"], x_label="날짜", y_label="기온")

import streamlit as st
col1, col2, col3 = st.columns([1, 2, 3])
with col1:
st.header("제목1")
st.text("column 1")
with col2:
st.header("제목2")
st.text("column 2")
st.button("확인")
with col3:
st.header("제목3")
st.text("column 3")

모바일에서는 작동 X
import streamlit as st
tab1, tab2, tab3 = st.tabs(["Python", "Streamlit", "Pandas"])
with tab1:
st.header("Python")
st.text("I ❤️ Python")
with tab2:
st.header("Streamlit")
st.text("I ❤️ Streamlit")
with tab3:
st.header("Pandas")
st.text("I ❤️ Pandas")

import streamlit as st
st.title("st.session_state 예제 🎈")
### 1. session_state 초기화
if 'count' not in st.session_state:
st.session_state.count = 0
### 2. 버튼을 누르면 숫자를 1씩 증가시키는 함수
def increment_counter():
st.session_state.count += 1
### 3. 버튼 생성 및 함수 연결
st.button("숫자 올리기", on_click=increment_counter)
### 4. 현재 숫자 표시
st.write("현재 숫자: ", st.session_state.count)

import streamlit as st
import pandas as pd
### 페이지 제목 설정
st.title("가장 선호하는 프로그래밍 언어는?")
### st.session_state에 'votes'가 없으면 초기화
if 'votes' not in st.session_state:
st.session_state.votes = {'Python': 0, 'JavaScript': 0, 'Java': 0, 'C++': 0}
### 선택 옵션 (라디오 버튼)
options = ('Python', 'JavaScript', 'Java', 'C++')
selected_lang = st.radio("마음에 드는 언어", options)
### "투표하기" 버튼
if st.button("투표하기"):
st.session_state.votes[selected_lang] += 1
### 현재 투표 현황 제목
st.subheader("현재 투표 결과")
### st.bar_chart로 결과 시각화
chart_data = pd.Series(st.session_state.votes)
st.bar_chart(chart_data)

import streamlit as st
data = {}
with st.form("과목 설문 조사"):
data["date"] = st.date_input("수강 날짜")
data["name"] = st.text_input("이름")
data["description"] = st.text_area("전체 소감")
data["level"] = st.number_input(label="학년", value=1, step=1)
data["preference"] = st.slider(label="과목 선호도", min_value=1, max_value=10)
data["difficulty"] = st.radio(
label="난이도",
options=["쉬웠다", "보통", "어려웠다"],
)
data["is_retaking"] = st.checkbox(label="재수강 여부")
st.form_submit_button("적용")
st.table(data)
