本篇旨在測試 Streamlit 的數值滑桿函式 st.slider().
呼叫 st.slider() 函式並傳入必要參數 label 會建立一個數值滑桿, 其參數結構如下 :
st.slider(label, min_value=None, max_value=None, value=None, step=None, format=None, key=None, help=None, on_change=None, args=None, kwargs=None, disabled=False, label_visibility="visible")
st.slider() 只有一個必要參數 label, 其參數結構與數值輸入 st.number_input() 完全相同, 傳回值是滑桿所在位置之值.
參數說明如下表 :
| st.slider() 之參數 | 說明 |
|---|---|
| label | 滑桿的標籤文字 |
| min_value | 可選擇的最小值 (int, float, 或 datetime), 預設 None (其實為 0) |
| max_value | 可選擇的最大值, 預設 None (其實為 100) |
| value | 預設值。可為單一值,也可為 (min, max) 代表範圍 |
| step | 每次變動的間距 |
| format | 顯示格式 (如 "%d", "%.2f") |
| key | 元件的唯一識別字串 |
| help | 滑鼠移過時顯示的提示文字 |
| on_change | 當值變動時呼叫的函式 |
| args | 傳給 on_change 的位置參數 (tuple) |
| kwargs | 傳給 on_change 的關鍵字參數 (dict) |
| disabled | 是否停用元件 (True 則無法操作) |
| label_visibility | 標籤可見性,值為 "visible"(預設)、"hidden"、"collapsed" |
例如 :
測試 1 : 輸入整數 [看原始碼]
# st-slider-test-1.py
import streamlit as st
age=st.slider('請輸入年齡:', min_value=0, max_value=120, value=25, step=1)
st.write(f'您的年齡是:{age}')
結果如下 :
下面試輸入浮點數的例子 :
測試 2 : 輸入浮點數 [看原始碼]
# st-slider-test-2.py
import streamlit as st
weight1=st.slider('請輸入體重:', min_value=0.0, max_value=150.0, value=50.0, step=1.0)
st.write(f'您的體重是:{weight1}')
結果如下 :
接著測試 on_change 與 args 參數 :
測試 3 : 參數 on_change 與 args 用法 [看原始碼]
# st-slider-test-3.py
import streamlit as st
def show_value(var):
value=st.session_state[var]
st.write(f'{var} 目前的數值是:{value}')
st.slider('請輸入 A 之值:', key='A', on_change=show_value, args=('A',))
st.slider('請輸入 B 之值:', key='B', on_change=show_value, args=('B',))
結果如下 :
上例也可以用 kwargs 來傳遞引數 :
測試 4 : 參數 on_change 與 args 用法 [看原始碼]
# st-slider-test-4.py
import streamlit as st
def show_value(var):
value=st.session_state[var]
st.write(f'{var} 目前的數值是:{value}')
st.slider('請輸入 A 之值:', key='A', on_change=show_value, kwargs={'var': 'A'})
st.slider('請輸入 B 之值:', key='B', on_change=show_value, kwargs={'var': 'B'})
結果如下 :
下面範例測試 format 參數, 此參數只是用來控制元件上的數值顯示格式, 不會影響傳回值, 使用 Python 的格式化字串例如 %d, %e, %f, %g, %i, 與 %u 等, 參考 :
對於數值輸入而言最常用的是 %d 與 %f, 用法摘要如下表 :
| 常用 format 參數值範例 | 說明 |
|---|---|
| %d | 整數顯示格式,例如 1、2、3 |
| %.0f | 即始是浮點數也只顯示整數部分 |
| %.1f | 顯示一位小數,例如 1.0、2.5 |
| %.2f | 顯示兩位小數,例如 1.01、2.57 |
例如 :
測試 5 : 參數 format 用法 [看原始碼]
# st-slider-test-5.py
import streamlit as st
st.subheader('format 參數測試')
st.slider('整數', 0, 10, step=1, format='%d')
st.slider('整數', 0.0, 10.0, step=0.1, format='%.0f')
st.slider('一位小數', 0.0, 10.0, step=0.1, format='%.1f')
st.slider('兩位小數', 0.0, 10.0, step=0.01, format='%.2f')
結果如下 :





沒有留言 :
張貼留言