コンテンツにスキップ

テキストと数値の入力

ユーザーからデータを受け取るためのウィジェットを紹介します。 Streamlitでは、「ウィジェットを変数に代入するだけ」 で入力値を受け取れるのが最大の特徴です。

文字を入力してもらうためのウィジェットです。

  • st.text_input(): 1行の入力(名前やキーワードなど)
  • st.text_area(): 複数行の入力(感想や長文など)
input_text.py
import streamlit as st
st.title("テキスト入力")
# テキスト入力フォーム
name = st.text_input("お名前を入力してください", placeholder="例:山田 太郎")
if name:
st.write(f"こんにちは、**{name}** さん!")
else:
st.warning("名前がまだ入力されていません")
st.write("---")
# テキストエリア(複数行)
feedback = st.text_area("感想を教えてください", height=150)
if st.button("送信"):
st.write("以下の内容で受け付けました:")
st.code(feedback)

入力した瞬間に変数の中身が書き換わり、画面が更新されます。

数値(整数・小数)を入力してもらうためのウィジェットです。

  • st.slider(): 直感的に値を変更できます。範囲指定に適しています。
  • st.number_input(): 正確な数値を入力できます。
input_slider.py
import streamlit as st
st.title("数値の入力")
# スライダー
st.subheader("スライダー")
age = st.slider("年齢を選択", min_value=0, max_value=100, value=20)
st.write(f"あなたは {age} 歳ですね。")
st.write("---")
# 数値入力ボックス
st.subheader("数値入力")
height = st.number_input("身長(cm)を入力", min_value=0.0, step=0.1)
weight = st.number_input("体重(kg)を入力", min_value=0.0, step=0.1)
if height > 0 and weight > 0:
bmi = weight / ((height/100) ** 2)
st.metric("あなたのBMI", f"{bmi:.2f}")

計算結果がリアルタイムに反映されるのを確認してください。