python命令行交互 引导用户选择宠物

news/2024/10/23 16:15:01/

字多不看,直接体验

代码

以下代码将在命令行中,引导用户选择一个或者多个宠物,并反馈用户选择的宠物

# -*- coding:UTF-8 -*-
"""
@author: dyy
@contact: douyaoyuan@126.com
@time: 2023/11/22 15:19
@file: 在命令行中引导用户选择宠物.py
@desc: xxxxxx
"""# region 引入必要的依赖
import os模块名 = 'DebugInfo'
try:from DebugInfo.DebugInfo import *
except ImportError as impErr:print(f"尝试导入 {模块名} 依赖时检测到异常:{impErr}")print(f"尝试安装 {模块名} 模块:")try:os.system(f"pip install {模块名}")except OSError as osErr:print(f"尝试安装模块 {模块名} 时检测到异常:{osErr}")exit(0)else:try:from DebugInfo.DebugInfo import *except ImportError as impErr:print(f"再次尝试导入 {模块名} 依赖时检测到异常:{impErr}")exit(0)# endregion看板: 打印模板 = 打印模板()待选宠物 = ['猫', '狗', '猪', '牛', '羊', '马']选择器 = 交互接口类()
选择器.添加选项(选项=待选宠物)用户选择 = 选择器.发起选项交互(输入提示='请选择一个宠物吧(0: 退出选择):', 多选=True, 画板=看板.副本)if '0' in 用户选择.代号:  # 用户放弃了选择看板.消息(红字('您放弃了选择, 太可惜了'))
else:if len(用户选择.选项) == 1:看板.消息(f'恭喜您选择了: {绿字(用户选择.选项[0])}')else:看板.消息('您的选择如下:')看板.添加多行(行列表=用户选择.选项,拆分列数=1,修饰方法=绿字).展示表格()

以上代码中:

  • 我们准备了一个宠物列表,以供用户选择
  • 然后我们向用户发起选项交互,并提示用户通过代号选择一个或者多个宠物,或者输入 0 以退出选择。
  • 当用户输入 0 时,我们提示用户放弃了选择
  • 当用户输入一个不存在的代号时,我们提示用户输入无效
  • 当用户输入一个代号时,我们提示用户选择的宠物是什么
  • 当用户输入多个僅时,我们提示用户选择了哪些宠物

用户拒绝选择

当用户输入 0 并回车时,我们提示用户拒绝了选择,如下👇
20231122153122

用户选择了一个不存在的宠物

当用户输入的内容不在代号范围内时,我们提示用户输入无效,如下👇
20231122153334

用户输入一个代号

当用户输入一个代号时,我们提示用户选择的宠物是什么,如下👇
20231122154333

用户选择了多信宠物

当用户输入多个代号时,我们提示用户选择了哪些宠物,如下👇
20231122154444

小结

以上就是今天分享的引导用户选择宠物的例子了,通过这种方法,我们可以在命令行中实现优良的交互体验,在保持命令行高效的同时,又保留了窗口界面的易用性,同时约束了用户输入的多变性。

以上就是今天分享的引导用户选择宠物的例子了,通过这种方法,我们可以在命令行中实现优良的交互体验,在保持命令行高效的同时,又保留了窗口界面的易用性,同时约束了用户输入的多变性。


http://www.ppmy.cn/news/1239313.html

相关文章

如何用SWIG封装c++接口给java使用?

SWIG是什么? SWIG(Simplified Wrapper and Interface Generator)是一个将C/C接口转换为其他语言接口的工具,从而可以讲C/C的库集成到其他语言的系统中。目前SWIG已经可以支持Python, Java, C#,Ruby,PHP,R语言等十多种语言。 官方网址&…

Dreamview底层实现原理

1. Dreamview底层实现原理(3个模块) (1) HMI--可视化人机交互 a. HMIConfig: 1) 支持哪些模式;2)支持哪些地图;3)支持哪些车辆;4)HMIAction HMIMode: b.HMIStatus (2) SimControl (3) Monitor--监视自动驾驶行驶过程中软硬件状态 Referenc…

ubuntu 手动清理内存cache

/proc是一个虚拟文件系统,我们可以通过对它的读写操作来做为与kernel实体间进行通信的一种手段。也就是说可以通过修改/proc中的文件,来对当前kernel的行为做出调整。 那么我们可以通过调整/proc/sys/vm/drop_caches来释放内存。操作如下: …

springsecurity6配置二

一、springsecurity6自定义认证异常处理器 1.1 AuthenticationEntryPointImpl.java package com.school.information.core.security.handler;import com.alibaba.fastjson.JSON; import com.school.information.enums.result.ResultStatusEnum; import com.school.informatio…

Django框架之csrf跨站请求

【一】csrf跨站请求伪造详解 CSRF(Cross-Site Request Forgery)跨站请求伪造是一种常见的网络攻击方式。 攻击者通过诱导受害者访问恶意网站或点击恶意链接 将恶意请求发送到目标网站上利用受害者在目标网站中已登录的身份来执行某些操作从而达到攻击的目的。要保护自己免受C…

计算机网络之概述

一、概述 1.1因特网概述 定义 网络(Network)由若干结点(Node)和连接这些结点的链路(Link)组成。多个网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网(或互连网)因此,互联网是“网络的网络…

Qt/QML编程学习之心得:一个QML工程的学习笔记(十)

前言: 到底什么是Qt Quick呢?因为Qt Quick是Qt新引入的,Qt Quick由Qt Quick模块提供,它是一个编写QML应用的标准库。Qt Quick模块提供了两种接口:使用QML语言创建应用的QML接口和使用C++语言扩展QML的C++接口。使用Qt Quick模块,设计人员和开发人员可以轻松地构建流畅的…

python之pyqt专栏2-项目文件解析

项目结构 在上一篇文章python之pyqt专栏1-环境搭建,创建新的pyqt项目,下面我们来看一下这个项目下的文件。 从下面的文件结构图可以看到,该项目下有3个文件,untitled.ui,untitled.py 以及main.py。 QtDesigner可以UI界面的方式&am…