こんにちは、JS2IIUです。
1. はじめに
Streamlitは、Pythonで簡単にインタラクティブなWebアプリケーションを作成できる便利なライブラリです。その中でも、ユーザーからの入力を受け取るためのウィジェットは非常に重要な要素です。
今回はその中でも「数値を入力してもらう」ためのウィジェットである st.number_input を紹介します。この記事では、st.number_input の基本的な使い方から、オプションを活用した応用例、よくある注意点まで、ステップバイステップで丁寧に解説します。
2. st.number_inputとは?
st.number_input は、ユーザーから 数値(整数または小数)を入力 してもらうためのウィジェットです。入力された値は変数として取得できるため、後続の処理に自由に利用できます。
number = st.number_input('数値を入力してください')このように簡単な一行で、数値入力フィールドを画面上に表示できます。
3. 基本的な使い方【ステップバイステップ】
まずは最も基本的な使い方を見てみましょう。
ステップ①:Streamlitのインポート
import streamlit as stステップ②:数値入力フィールドの作成
number = st.number_input('数値を入力してください')ステップ③:入力された値を表示
st.write(f'あなたが入力した数値:{number}')フルコード例:
import streamlit as st
number = st.number_input('数値を入力してください')
st.write(f'あなたが入力した数値:{number}')このコードを実行すると、画面に数値を入力できるフィールドが表示され、入力した値がリアルタイムで下に表示されます。

4. よく使うオプションの解説
st.number_input は、いくつかの便利なオプションを指定することで、入力値の範囲やステップなどを細かく設定できます。
| オプション名 | 説明 | 使用例 |
|---|---|---|
min_value | 入力できる最小値 | min_value=0 |
max_value | 入力できる最大値 | max_value=100 |
value | デフォルトの初期値 | value=10 |
step | 値の増減ステップ | step=5 |
format | 表示フォーマット(小数点の桁数など) | format="%.2f" |
key | 同じラベルが複数あるときの識別子 | key='input1' |
さらに詳しくはStreamlitのドキュメントを参照してください。
st.number_input – Streamlit Docs

5. オプションを使った応用例
例えば、年齢の入力フィールドを作りたい場合は以下のように記述します。
import streamlit as st
age = st.number_input(
'年齢を入力してください',
min_value=0,
max_value=120,
value=25,
step=1
)
st.write(f'あなたの年齢:{age}歳')
解説:
min_value=0:0歳未満は入力不可max_value=120:120歳以上は入力不可value=25:初期値として25を設定step=1:1ずつ増減
6. 小数を入力する例
小数(たとえば体重など)を入力してもらいたい場合は、次のように記述します。
import streamlit as st
weight = st.number_input(
'体重を入力してください(kg)',
min_value=30.0,
max_value=150.0,
value=60.0,
step=0.1,
format="%.1f"
)
st.write(f'あなたの体重:{weight}kg')解説:
- 小数のステップ:
step=0.1とすることで 0.1kg 単位で入力可能 format="%.1f"によって小数点以下1桁にフォーマットされます
7. よくあるエラー・注意点
❗ min_value と max_value の順序に注意
st.number_input('例', min_value=100, max_value=0) # ❌ エラーになります→ min_value は必ず max_value より小さく設定しましょう。
❗ value が範囲外だとエラーまたは無視される
st.number_input('例', min_value=0, max_value=10, value=50) # ⚠️ 50は無効→ value は min_value~max_value の範囲内にしましょう。
❗ 小数点のステップを使うときは format も設定
st.number_input('例', step=0.1) # ⚠️ 表示が意図しない形式になることも→ format="%.1f" を併用して、見た目を整えましょう。
8. まとめ
st.number_input は、ユーザーから数値を受け取りたい場面でとても便利なウィジェットです。基本的な使い方はシンプルですが、オプションを使いこなすことで、より実用的なUIを作ることができます。
本記事のポイント
st.number_inputで数値入力が簡単にできるmin_value,max_value,value,stepなどで入力をコントロール- 小数には
stepとformatを合わせて使うのがコツ - 範囲や初期値の設定ミスに注意!
ぜひ、あなたのアプリでも st.number_input を活用してみてください。
9. 参考リンク
最後に書籍のPRです。
24年9月に出版された「ハイパーモダンPython-信頼性の高いワークフローを構築するモダンテクニック」、Claudio Jolowicz著、嶋田、鈴木訳。開発環境の構築、プロジェクトの管理、テストに関して実践的な内容でとても参考になる一冊です。ぜひ手に取ってみてください。
最後まで読んでいただきありがとうございます。


コメント