python 命令行界面的用户交互

编程入门 行业动态 更新时间:2024-10-25 12:19:25

python <a href=https://www.elefans.com/category/jswz/34/1771327.html style=命令行界面的用户交互"/>

python 命令行界面的用户交互

背景

说一千,道一万,程序是为用户服务的,所以在程序运行过程,与用户交互以获取用户的信息输入和决策确认,是无法避免的编程需要考虑和解决的需求。

一个简单的demo

如下的程序中,程序需要生成一个新的 id_rsa.pub 文件,但是不巧,程序的工作目录下已经存在了一个 id_rsa.pub 文件。我们需要告知用户并获得用户的决策指示,以便可以做出用户希望的行为。

下面的代码使用 input 向用户发起交互:

# -*- coding:UTF-8 -*-# region 引入必要依赖
from DebugInfo.DebugInfo import *# endregionif __name__ == "__main__":画板: 打印模板 = 打印模板(False)画板.执行位置(__file__)交互端: 交互接口类 = 交互接口类()画板.消息('程序已经开始运行...')画板.消息('生成新的 id_rsa.pub 文档...')用户选择 = input('此操作将会删除原有文本,请问是否继续(y:继续; n:返回): ')if 用户选择:if 用户选择 in 'yY':画板.消息(绿字('您选择了继续,感谢信任...'))elif 用户选择 in 'nN':画板.消息(红字('您选择了返回,您是一个谨慎的人'))else:画板.提示错误('您输入了非期望的指示')else:画板.提示错误('您没有输入任何值')

👆上面的代码中,我们提示用户输入决策,并对用户输入的决策进行判断和反馈:

  • 当用户输入 y or Y 时,程序反馈用户,感谢信息
  • 当用户输入 n or N 时,程序反馈用户,并中断覆盖文档的损伤
  • 当用户没有输入时,程序反馈用户没有输入任何信息
  • 当用户输入的值不在 y Y n N 范围内时,提醒用户输入了非预期的值

优化交互

命令行是一个主要以文本方程呈现信息的界面,这种界面下信息密度高,用户操作的误操作率也比较高,也就是说,我们需要容许用户错误和非法的输入,并提供补救的机会。

以下代码进行了优化,为用户提供了补救的机会:

# -*- coding:UTF-8 -*-# region 引入必要依赖
from DebugInfo.DebugInfo import *# endregionif __name__ == "__main__":画板: 打印模板 = 打印模板(False)画板.执行位置(__file__)交互端: 交互接口类 = 交互接口类()画板.消息('程序已经开始运行...')画板.消息('生成新的 id_rsa.pub 文档...')确认覆盖: bool = Falsewhile True:用户选择 = input('此操作将会删除原有文本,请问是否继续(y:继续; n:返回): ')if 用户选择:if 用户选择 in 'yY':画板.消息(绿字('您选择了继续,感谢信任...'))确认覆盖 = Truebreakelif 用户选择 in 'nN':画板.消息(红字('您选择了返回,您是一个谨慎的人'))确认覆盖 = Falsebreakelse:画板.提示错误('您输入了非期望的指示')else:画板.提示错误('您没有输入任何值')if 确认覆盖:passelse:pass

👆以上代码中,我们将用户输入的input逻辑和判断逻辑放入一个 while 循环中,并在用户输入非法时,循环提示用户输入,直到用户输入了预期的信息。效果如下:

通过使用 while True 循环,我们为用户提供了补救的机会,提高了交互的使用体验和健壮性。

逻辑封装

以上所设计的用户交互逻辑,在 DebugInfo 模块中已经进行了封装,可以通过 交互接口类 使用封装好的功能。如下是使用 DebugInfo.交互接口类 实现的用户交互逻辑的代码:

# -*- coding:UTF-8 -*-# region 引入必要依赖
from DebugInfo.DebugInfo import *# endregionif __name__ == "__main__":画板: 打印模板 = 打印模板(False)画板.执行位置(__file__)交互端: 交互接口类 = 交互接口类()画板.消息('程序已经开始运行...')画板.消息('生成新的 id_rsa.pub 文档...')# 要求用户确认是否继续用户选择 = 交互端.发起文本交互(输入提示='此操作将会删除原有文本,请问是否继续(y:继续; n:返回)',限定范围='yYnN',画板=画板.副本)if 用户选择 in 'yY':画板.消息(绿字('您选择了继续,感谢信任...'))elif 用户选择 in 'nN':画板.消息(红字('您选择了返回,您是一个谨慎的人'))

👆以上代码中,我们通过使用 用户选择 = 交互端.发起文本交互(输入提示=‘此操作将会删除原有文本,请问是否继续(y:继续; n:返回)’,限定范围=‘yYnN’,画板=画板.副本) 发起与用户的交互,并指定了用户输入反馈的范围是 ‘yYnN’,然后我们只需要等待用户交互完成后确认用户的决策就好了,下面是运行的效果:

👆上面的运行效果中,我们发现当用户输入非预期的值时,程序还善意的提醒了用户需要输入的字符范围,避免了用户手足无措的尴尬。

小结

以上就是今天分享的 DebugInfo 模块提供的 交互接口类 的用户交互功能了。欢迎大家体验并提出建议。
288)]

👆上面的运行效果中,我们发现当用户输入非预期的值时,程序还善意的提醒了用户需要输入的字符范围,避免了用户手足无措的尴尬。

小结

以上就是今天分享的 DebugInfo 模块提供的 交互接口类 的用户交互功能了。欢迎大家体验并提出建议。

更多推荐

python 命令行界面的用户交互

本文发布于:2023-11-16 12:25:56,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1621112.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:命令行   界面   用户   python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!