웹 개발 입문
글자 입력받기선택하게 하기숫자와 날짜 입력버튼을 누르면 무슨 일이 일어나냥연습하기 Level 1미니 프로젝트 · BMI 계산기
놀면 뭐 하니,
그냥 하는거야.

선택하게 하기

코딩냥

글자를 직접 치게 하는 건 자유롭지만, 오타가 나기 쉽다냥. "서울" 을 "서을" 이라고 치면 큰일이다냥. 그래서 정해진 것 중에 고르게 하는 위젯들이 있다냥. 오늘은 네 가지 선택 위젯을 배워보자냥!

오늘의 학습 목표

  • st.selectbox 로 하나를 고르는 드롭다운을 만든다.
  • st.radio 로 하나를 고르는 라디오 버튼을 만든다.
  • st.checkbox 로 켰다 껐다 하는 스위치를 만든다.
  • st.multiselect 로 여러 개를 동시에 고르게 한다.
실습 준비·필요한 패키지와 버전
  • streamlit1.40 이상파이썬 코드로 웹 화면 만들기

설치하기 — 터미널에 그대로 붙여넣기

pip install "streamlit>=1.40"

설치 확인 — 버전 번호가 찍히면 성공

python -c "import streamlit; print(streamlit.__version__)"

위 버전은 최소 기준이라, 더 높은 버전이 깔려 있으면 그대로 써도 된다냥. 버전이 안 찍히고 에러가 나면 설치가 안 된 거라 설치 명령을 다시 실행해보자냥.

1단계 · 하나만 고르기 — selectbox

코딩냥

selectbox 는 눌러서 목록이 펼쳐지는 드롭다운이다냥. 후보가 많을 때 깔끔하다냥. 고른 값이 변수에 담긴다냥.

import streamlit as st

city = st.selectbox("사는 도시는?", ["서울", "부산", "대구", "광주"])

st.write("선택한 도시는 " + city + " 라냥!")

후보는 리스트로 준다냥

["서울", "부산", ...] 처럼 고를 수 있는 후보를 리스트로 넘긴다냥. 사용자는 그 안에서만 고를 수 있으니 오타가 날 일이 없다냥!

2단계 · 라디오 버튼 — radio

코딩냥

radio 도 하나만 고르는 건 똑같지만, 후보가 처음부터 다 보인다냥. 후보가 두세 개로 적을 때는 라디오가 더 편하다냥.

import streamlit as st

size = st.radio("사이즈를 고르세요", ["소", "중", "대"])

st.write("고른 사이즈: " + size)

selectbox 와 radio, 언제 뭘 쓰냥

  • 후보가 많다 → selectbox (펼쳐서 고르게)
  • 후보가 적다(2~4개) → radio (한눈에 보이게)

3단계 · 켰다 껐다 — checkbox

코딩냥

checkbox 는 True 냐 False 냐 딱 두 가지다냥. 체크하면 True, 안 하면 False 를 돌려준다냥. "동의합니다", "알림 받기" 같은 데 쓴다냥.

import streamlit as st

agree = st.checkbox("이용약관에 동의합니다")

if agree:
    st.write("동의해줘서 고맙다냥!")
else:
    st.write("동의해야 다음으로 넘어간다냥")

체크박스는 조건문과 짝꿍이다냥

checkbox 가 True/False 를 주니까, 파이썬 탐험하기에서 배운 if 와 함께 쓰기 딱 좋다냥. 체크됐을 때만 뭔가 보여주는 식이라냥!

4단계 · 여러 개 고르기 — multiselect

코딩냥

지금까지는 하나만 골랐지? multiselect 는 여러 개를 한꺼번에 고를 수 있다냥. 고른 것들이 리스트로 담긴다냥.

import streamlit as st

toppings = st.multiselect(
    "토핑을 고르세요 (여러 개 가능)",
    ["치즈", "베이컨", "버섯", "올리브"],
)

st.write("고른 토핑 개수: " + str(len(toppings)))
st.write(toppings)

결과는 리스트라 len() 이 통한다냥

multiselect 는 고른 것들을 리스트로 주니까, len() 으로 몇 개 골랐는지 셀 수 있다냥. 리스트라서 for 로 하나씩 훑을 수도 있다냥!

5단계 · 직접 해보기

미션 · 나만의 주문서

  • selectbox 로 음료 하나
  • radio 로 사이즈(소/중/대)
  • multiselect 로 토핑 여러 개
  • checkbox 로 "포장하기"

고른 걸 아래에 "주문 내역" 으로 정리해서 보여주면 진짜 주문서가 된다냥!

복습 퀴즈

Q1.후보가 많을 때 펼쳐서 하나를 고르는 드롭다운 위젯은?
Q2.체크하면 True, 안 하면 False 를 주는 위젯은?
Q3.여러 개를 동시에 고르고, 결과를 리스트로 주는 위젯은?
코딩냥

선택 위젯 네 가지를 다 배웠다냥! 다음 시간엔 숫자와 날짜를 받는 위젯을 배워보자냥. 슬라이더를 쓰면 아주 재밌다냥!

8 / 33
이전2부 · 사용자에게 입력받기 · 글자 입력받기다음2부 · 사용자에게 입력받기 · 숫자와 날짜 입력