4. 滑块与实时更新
任务说明
构建一个Streamlit应用,页面包含一个滑块组件,用户拖动滑块时,页面实时显示当前数值及其平方和立方结果。核心目标是演示st.slider的基本用法以及Streamlit的响应式更新机制——当滑块值变化时,依赖该值的表达式会自动重新执行并刷新界面。
实现代码
import streamlit as st
st.title("滑块与实时更新")
# 创建滑块,范围0~100,默认值50,步长1
value = st.slider(
"选择一个数值",
min_value=0,
max_value=100,
value=50,
step=1
)
# 实时计算并展示
st.write(f"当前数值:**{value}**")
st.write(f"平方:**{value ** 2}**")
st.write(f"立方:**{value ** 3}**")
# 使用指标组件更直观地展示
col1, col2, col3 = st.columns(3)
col1.metric("数值", value)
col2.metric("平方", value ** 2)
col3.metric("立方", value ** 3)
运行方式
- 安装依赖:
pip install streamlit - 将上述代码保存为
app.py - 在终端运行:
streamlit run app.py - 浏览器自动打开本地地址(默认
http://localhost:8501)
验证方法
页面加载后,拖动滑块到任意位置(例如设为7),观察页面显示:
- “当前数值”显示为7
- “平方”显示为49
- “立方”显示为343
- 三个指标卡片同步更新为7、49、343
判定标准:滑块每次移动后,所有数值无需点击任何按钮即自动刷新,且平方、立方结果与当前滑块值严格一致(平方=数值×数值,立方=数值×数值×数值),即视为功能通过。
界面布局与更新机制
上图展示了本案例的核心数据流:滑块状态是唯一输入源,Streamlit检测到滑块值变化后自动重跑脚本,所有依赖该值的表达式(平方、立方)随之更新,最终通过st.write和st.metric将结果渲染到页面。整个过程无需手动提交或回调函数,体现了Streamlit“以Python脚本顺序执行为核心”的响应式编程模型。