当前位置: 首页 > news >正文

《Streamlit 交互式 Web 应用开发》总结测试题

一、教学目标
  1. 知识目标:了解 Streamlit 库的基本功能,掌握侧边栏菜单、文本输入、视频播放、页面嵌入等组件的使用。
  2. 技能目标:能够独立编写简单的交互式 Web 应用,实现菜单切换、条件判断、多媒体展示等功能。
  3. 素养目标:培养逻辑思维能力,学会通过代码拆分与调试解决实际问题。
二、教学重点与难点
  • 重点

    1. Streamlit 基本语法(streamlit.sidebaroption_menu组件的使用)。
    2. 条件判断(if语句)与用户输入(text_input)的结合。
    3. 多媒体组件(videoiframe)的嵌入方法。
  • 难点

    1. 菜单选项与功能模块的对应逻辑(option_menu的返回值与if分支的关联)。
    2. 第三方库(streamlit_option_menu)的安装与导入。
    3. 本地资源(如1.mp4)的路径配置与访问。
三、代码拆分与解析
1. 库导入部分

python

运行

import streamlit  # 导入Streamlit库,用于构建Web应用
from streamlit_option_menu import option_menu  # 导入侧边栏菜单组件
from streamlit.components.v1 import iframe  # 导入iframe组件,用于嵌入外部页面
  • 作用:引入开发所需的库,streamlit是核心库,option_menu用于创建侧边栏菜单,iframe用于嵌入外部网页。
2. 侧边栏菜单创建

python

运行

with streamlit.sidebar:  # 在侧边栏中创建内容a = option_menu("数字小猪人网站",  # 菜单标题["小猪说话","下雪","说话","笑话","数字人说话","制作数字人"],  # 菜单项icons=["bug","snow","android2","bug"],  # 图标(数量可少于菜单项))
  • 作用:通过option_menu在侧边栏创建菜单,变量a存储用户选择的菜单项。
  • 注意:icons参数可省略,或使用 Font Awesome 图标名称(如 "bug"、"snow")。
3. 菜单功能实现
(1)“下雪” 功能

python

运行

if a == "下雪":  # 当用户选择"下雪"时c = streamlit.text_input("请输入密码:")  # 获取用户输入的密码if c == '78.91':  # 密码正确时触发下雪效果streamlit.snow()
  • 逻辑:用户输入密码→验证通过→调用streamlit.snow()显示下雪动画。
(2)“数字人说话” 功能

python

运行

if a == "数字人说话":  # 当用户选择"数字人说话"时b = streamlit.video("1.mp4")  # 播放本地视频1.mp4if b:  # 若视频播放(实际需根据视频加载状态调整)import pyttsx3  # 导入语音库pyttsx3.speak("喂,你在干嘛")  # 语音播报
  • 逻辑:播放视频→触发语音合成(注意:pyttsx3需额外安装,且视频播放状态判断可能需要优化)。
(3)“制作数字人” 功能

python

运行

if a == "制作数字人":  # 当用户选择"制作数字人"时c = streamlit.text_input("请输入密码:")  # 获取密码if c == '78.91':  # 密码正确时iframe("https://www.doubao.com/chat", height=600)  # 嵌入外部网页streamlit.title("小猪")  # 显示标题
  • 逻辑:密码验证→嵌入豆包聊天页面→显示标题。
四、归纳总结
  1. 核心逻辑:通过侧边栏菜单(option_menu)获取用户选择,再用if语句分支执行对应功能,实现交互式体验。
  2. 组件作用
    • streamlit.sidebar:创建侧边栏区域。
    • text_input:获取用户文本输入(如密码)。
    • snow()/balloons():显示动画效果。
    • video():播放本地或网络视频。
    • iframe():嵌入外部网页(如第三方工具)。
  3. 注意事项
    • 第三方库需提前安装(如pip install streamlit streamlit-option-menu pyttsx3)。
    • 本地文件(如1.mp4)需与代码在同一目录,或使用绝对路径。
五、重点考点
  1. option_menu的参数含义(标题、菜单项、图标)。
  2. 条件判断语句(if)与用户输入(text_input)的结合使用。
  3. iframe组件的作用(嵌入外部页面)及height参数的意义。
  4. Streamlit 动画效果函数(snow()balloons())的调用条件。
  5. 本地资源(如视频)的路径配置问题。
六、练习题
(一)填空题(10 道)
  1. Streamlit 中,用于创建侧边栏的关键字是______。(答案:sidebar
  2. option_menu函数的第一个参数是菜单的______。(答案:标题)
  3. 获取用户文本输入的 Streamlit 函数是______。(答案:text_input
  4. 播放本地视频的函数是______。(答案:streamlit.video
  5. 嵌入外部网页使用的组件是______。(答案:iframe
  6. streamlit.snow()函数的作用是显示______效果。(答案:下雪)
  7. 代码中a = option_menu(...)的变量a存储的是用户选择的______。(答案:菜单项)
  8. 导入option_menu组件的语句是from streamlit_option_menu import ______。(答案:option_menu
  9. 验证密码时,使用的条件判断关键字是______。(答案:if
  10. iframe组件中,height=600表示嵌入区域的______为 600 像素。(答案:高度)
(二)选择题(10 道)
  1. 下列哪个库用于创建 Streamlit 的侧边栏菜单?( )A. streamlit B. streamlit_option_menu C. pyttsx3 D. iframe(答案:B)

  2. 要在 Streamlit 中显示标题,应使用哪个函数?( )A. streamlit.title() B. streamlit.text() C. streamlit.header() D. streamlit.markdown()(答案:A)

  3. 代码streamlit.text_input("请输入密码:")的作用是( )。A. 显示密码 B. 获取用户输入的密码 C. 验证密码 D. 隐藏密码(答案:B)

  4. 下列哪个函数用于播放视频?( )A. streamlit.play() B. streamlit.video() C. streamlit.movie() D. streamlit.media()(答案:B)

  5. option_menu的参数icons的作用是( )。A. 设置菜单颜色 B. 为菜单项添加图标 C. 隐藏菜单项 D. 设置菜单大小(答案:B)

  6. 要嵌入外部网页,应使用哪个组件?( )A. embed B. import C. iframe D. link(答案:C)

  7. 下列哪个函数能触发气球动画效果?( )A. streamlit.balloons() B. streamlit.ball() C. streamlit.animate() D. streamlit.effect()(答案:A)

  8. 代码中if a == "下雪":的作用是( )。A. 定义菜单项 “下雪” B. 当用户选择 “下雪” 时执行后续代码 C. 删除 “下雪” 菜单 D. 隐藏 “下雪” 菜单(答案:B)

  9. 第三方库pyttsx3的主要功能是( )。A. 播放视频 B. 语音合成(文字转语音) C. 嵌入网页 D. 创建菜单(答案:B)

  10. iframe("https://www.doubao.com/chat", height=600)中,height=600的单位是( )。A. 厘米 B. 像素 C. 英寸 D. 百分比(答案:B)

(三)编程题(10 道)
  1. 编写代码,在 Streamlit 侧边栏创建一个标题为 “我的菜单”,包含 “首页”“设置” 两个选项的菜单。(答案:)

    python

    运行

    import streamlit
    from streamlit_option_menu import option_menu
    with streamlit.sidebar:option = option_menu("我的菜单", ["首页", "设置"])
    
  2. 编写代码,当用户选择菜单中的 “气球” 时,显示气球动画。(答案:)

    python

    运行

    import streamlit
    from streamlit_option_menu import option_menu
    with streamlit.sidebar:a = option_menu("菜单", ["气球"])
    if a == "气球":streamlit.balloons()
    
  3. 编写代码,使用text_input获取用户姓名,并在页面显示 “你好,[姓名]!”。(答案:)

    python

    运行

    import streamlit
    name = streamlit.text_input("请输入姓名:")
    if name:streamlit.write(f"你好,{name}!")
    
  4. 编写代码,嵌入百度首页(https://www.baidu.com),高度设为 500。(答案:)

    python

    运行

    import streamlit
    from streamlit.components.v1 import iframe
    iframe("https://www.baidu.com", height=500)
    
  5. 编写代码,创建一个菜单选项 “播放视频”,选择后播放本地视频 “video.mp4”。(答案:)

    python

    运行

    import streamlit
    from streamlit_option_menu import option_menu
    with streamlit.sidebar:a = option_menu("菜单", ["播放视频"])
    if a == "播放视频":streamlit.video("video.mp4")
    
  6. 编写代码,实现 “密码验证” 功能:用户输入密码 “123456”,正确则显示 “验证通过”。(答案:)

    python

    运行

    import streamlit
    pwd = streamlit.text_input("请输入密码:", type="password")
    if pwd == "123456":streamlit.write("验证通过")
    
  7. 编写代码,在侧边栏菜单中添加 “关于” 选项,选择后显示文本 “这是一个测试应用”。(答案:)

    python

    运行

    import streamlit
    from streamlit_option_menu import option_menu
    with streamlit.sidebar:a = option_menu("主菜单", ["关于"])
    if a == "关于":streamlit.write("这是一个测试应用")
    
  8. 编写代码,使用streamlit.title()在页面显示标题 “我的第一个应用”。(答案:)

    python

    运行

    import streamlit
    streamlit.title("我的第一个应用")
    
  9. 编写代码,创建包含 “天气” 选项的菜单,选择后显示文本 “今天晴天”。(答案:)

    python

    运行

    import streamlit
    from streamlit_option_menu import option_menu
    with streamlit.sidebar:a = option_menu("生活助手", ["天气"])
    if a == "天气":streamlit.write("今天晴天")
    
  10. 编写代码,实现 “下雪” 功能:用户输入密码 “snow”,正确则触发下雪动画。(答案:)

    python

    运行

    import streamlit
    from streamlit_option_menu import option_menu
    with streamlit.sidebar:a = option_menu("特效", ["下雪"])
    if a == "下雪":pwd = streamlit.text_input("请输入密码:")if pwd == "snow":streamlit.snow()
http://www.dtcms.com/a/560655.html

相关文章:

  • 大连 网站制作黑龙江做网站
  • ASP.NET Core 9 Web Api 启用 Swagger
  • Web APIs学习第三天:事件
  • UVa 1597 Searching the Web
  • 5分钟读懂MySQL+Redis双写一致性实现流程
  • 从零开始构建PDF文档生成器(二)- 添加页眉页脚
  • PostgreSQL 中 pg_stat_database 视图的 tup_returned 字段详解
  • 网络原理--HTTP
  • 网站开发宣传标语2017做网站还赚钱吗
  • 海南网站建设公司哪家好wordpress 有点慢
  • Flutter 存储管理:从基础到进阶的完整指南
  • 鸿蒙Flutter三方库适配指南:09.版本升级适配
  • AutoAnalyze智能数据分析助手开源项目
  • “监狱”风云:如何设计爬虫的自动降级与熔断机制?
  • 关于力扣3721. 最长平衡子数组 II线段树解法的反思
  • Visual Basic.NET 的特性
  • LabVIEW的Vision边缘工具(Edge Tool)功能
  • LabVIEW工业零件尺寸测量
  • 网站建设自建的优点百度指数在线查询前100
  • 【AI智能体】Docker 部署 Coze应用服务实战操作详解
  • QAxios研发笔记(二):在Qt环境下基于Promise风格简化Http的Post请求
  • 用 Flink CDC 将 MySQL 实时同步到 StarRocks
  • 基础开发工具---软件包装管理器及vim
  • 邮箱登陆嵌入网站义乌网站建设方案详细
  • 榨干 CPU 性能:通过绑核将 Redis 尾延迟减半!
  • 数据结构之栈和队列-队列
  • 十九、STM32的TIM(十)(编码器)
  • FSDP(Fully Sharded Data Parallel)全分片数据并行详解
  • Transformer 模型详解:从输入到输出的全流程剖析
  • 网站开发工单营销型网站建设设定包括哪些方面