Streamlit 交互与人python工智能网站开发基础
一、教学目标
- 知识目标:了解 Streamlit 框架的基本功能,掌握
streamlit_option_menu
插件的使用,理解条件判断在交互逻辑中的应用。 - 技能目标:能独立编写带侧边栏菜单的 Streamlit 应用,实现简单的交互功能(如气球、下雪动画及语音播报)。
- 情感目标:培养对 PythonWeb 开发的兴趣,提升利用编程解决实际问题的能力。
二、教学重点
- Streamlit 的基本语法(如
streamlit.sidebar
、streamlit.balloons()
等函数的使用)。 streamlit_option_menu
插件的安装与菜单创建(option_menu
函数参数含义)。- 条件判断语句(
if
)与交互逻辑的结合(根据菜单选择执行对应功能)。
三、教学难点
- 第三方插件的安装与导入(
streamlit_option_menu
和pyttsx3
的环境配置)。 - 交互逻辑的实现:菜单选择值(
a
)与功能执行的对应关系。 - 语音播报功能(
pyttsx3
)的跨平台兼容性(Windows/macOS 可能需要不同配置)。
四、考点解析
- Streamlit 的核心特点:轻量级 PythonWeb 框架,无需前端知识即可快速开发交互式应用。
option_menu
函数参数:menu_title
(菜单标题)、options
(菜单项列表)、icons
(图标列表)的作用。- 条件判断的应用:通过
if a == "xxx"
实现不同菜单对应的功能分支。 - 第三方库的导入时机:语音播报功能在需要时才导入(
import pyttsx3
),优化程序效率。
五、课堂练习
填空题(10 道)
- Streamlit 中,创建侧边栏内容需使用______对象。
streamlit_option_menu
插件的核心函数是______。- 代码中
option_menu
函数的icons
参数用于设置菜单项的______。 streamlit.balloons()
函数的作用是在页面显示______动画。- 实现 “下雪” 效果的函数是______。
- 变量
a
存储的是用户选择的______。 - 语音播报功能依赖的库是______。
pyttsx3.speak("你好")
的作用是______。- 代码中通过______语句判断用户选择的菜单项并执行对应功能。
- 运行 Streamlit 应用的命令是______。
选择题(10 道)
以下哪个是 Streamlit 的正确安装命令?( )A.
pip install streamlit-option-menu
B.pip install streamlit
C.pip install pyttsx3
D.conda install streamlit
streamlit.sidebar
的作用是( )A. 创建主页面内容B. 创建侧边栏内容C. 导入第三方库D. 执行动画效果option_menu
函数中,options
参数的数据类型是( )A. 字符串B. 列表C. 字典D. 整数代码中
a = option_menu(...)
的含义是( )A. 定义菜单标题B. 将用户选择的菜单项赋值给变量a
C. 隐藏菜单D. 执行菜单对应的功能以下哪个函数能触发页面显示气球动画?( )A.
streamlit.snow()
B.streamlit.balloons()
C.streamlit.animate()
D.streamlit.show()
语音播报功能中,
pyttsx3.speak()
的参数类型是( )A. 整数B. 列表C. 字符串D. 布尔值代码中
if a == "说话":
的作用是( )A. 判断用户是否点击了 “说话” 按钮B. 判断用户是否选择了 “说话” 菜单项C. 隐藏 “说话” 菜单项D. 定义 “说话” 功能的参数以下哪个插件用于创建带图标的侧边栏菜单?( )A.
pyttsx3
B.streamlit
C.streamlit_option_menu
D.matplotlib
运行 Streamlit 应用的正确命令是( )A.
python 文件名.py
B.streamlit run 文件名.py
C.run streamlit 文件名.py
D.streamlit 文件名.py
若用户选择 “下雪” 菜单项,代码会执行哪个函数?( )A.
streamlit.balloons()
B.pyttsx3.speak()
C.streamlit.snow()
D.option_menu()
编程题(10 道)
- 写出安装
streamlit_option_menu
插件的命令。 - 补全代码:使用
streamlit.sidebar
创建一个标题为 “我的菜单” 的侧边栏。 - 写出
option_menu
函数中,设置菜单项为 ["音乐","视频"]、图标为 ["music","film"] 的参数。 - 编写代码:当用户选择 “音乐” 菜单项时,在页面显示文字 “正在播放音乐”。
- 补全代码:实现 “烟花” 动画(提示:使用
streamlit.experimental_set_query_params
以外的动画函数)。 - 编写代码:导入
pyttsx3
库,并让程序播报 “欢迎使用”。 - 修改原代码,新增一个菜单项 “提示”,选择后显示文字 “这是一个提示”。
- 编写代码:使用
option_menu
创建一个无图标的侧边栏菜单,菜单项为 ["首页","设置"]。 - 补全代码:当变量
a
的值为 “设置” 时,显示文字 “进入设置页面”。 - 综合题:创建一个侧边栏菜单,包含 ["计算","时间"] 两个选项,选择 “计算” 时显示 1+1 的结果,选择 “时间” 时显示当前时间(提示:使用
datetime
库)。
六、答案
填空题答案
streamlit.sidebar
option_menu
- 图标
- 气球
streamlit.snow()
- 菜单项(或菜单选项)
pyttsx3
- 播报文字 “你好”
if
(条件判断)streamlit run 文件名.py
选择题答案
- B
- B
- B
- B
- B
- C
- B
- C
- B
- C
编程题答案
pip install streamlit-option-menu
python
运行
import streamlit as st
with st.sidebar:st.title("我的菜单")
python
运行
options=["音乐","视频"], icons=["music","film"]
python
运行
import streamlit as st
from streamlit_option_menu import option_menu
with st.sidebar:a = option_menu("菜单", ["音乐","视频"])
if a == "音乐":st.write("正在播放音乐")
python
运行
import streamlit as st
st.balloons() # 烟花类动画可使用气球动画替代(Streamlit内置无烟花函数,此为最接近效果)
python
运行
import pyttsx3
pyttsx3.speak("欢迎使用")
python
运行
import streamlit as st
from streamlit_option_menu import option_menu
with st.sidebar:a = option_menu("子豪网站", ["气球","下雪","说话","提示"], icons=["yin-yang","snow","rocket","info"])
if a == "气球":st.balloons()
if a == "下雪":st.snow()
if a == "说话":import pyttsx3pyttsx3.speak("你好")
if a == "提示":st.write("这是一个提示")
python
运行
import streamlit as st
from streamlit_option_menu import option_menu
with st.sidebar:a = option_menu("菜单", ["首页","设置"], icons=None)
python
运行
if a == "设置":st.write("进入设置页面")
python
运行
import streamlit as st
from streamlit_option_menu import option_menu
import datetimewith st.sidebar:a = option_menu("功能菜单", ["计算","时间"], icons=["calculator","clock"])if a == "计算":st.write(f"1+1的结果是:{1+1}")
if a == "时间":st.write(f"当前时间:{datetime.datetime.now()}")