python 命令行界面的用户交互及优化

 更新时间:2023年11月06日 09:30:35   作者:三块钱  
这篇文章主要为大家介绍了python 命令行界面的用户交互及优化方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

背景

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

一个简单的demo

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

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

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

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

效果如下:

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

逻辑封装

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

如下是使用 DebugInfo.交互接口类 实现的用户交互逻辑的代码:

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

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

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

小结

以上就是今天分享的 DebugInfo 模块提供的 交互接口类 的用户交互功能了,更多关于python 命令行界面用户交互的资料请关注脚本之家其它相关文章!

相关文章

  • Python可视化绘制图表的教程详解

    Python可视化绘制图表的教程详解

    python 有许多可视化工具,但本文主要为大家介绍一下Matplotlib。Matplotlib是一种2D的绘图库,它可以支持硬拷贝和跨系统的交互,感兴趣的可以了解一下
    2022-10-10
  • 使用pandas对两个dataframe进行join的实例

    使用pandas对两个dataframe进行join的实例

    今天小编就为大家分享一篇使用pandas对两个dataframe进行join的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • 解决出现Incorrect integer value: '''' for column ''id'' at row 1的问题

    解决出现Incorrect integer value: '''' for column ''id'' at row 1

    这篇文章主要介绍了解决出现Incorrect integer value: '' for column 'id' at row 1的问题的相关资料,希望通过本文能帮助到大家,让大家遇到这样的问题及时的解决,需要的朋友可以参考下
    2017-10-10
  • Python实现自动计算Excel数据指定范围内的区间最大值

    Python实现自动计算Excel数据指定范围内的区间最大值

    这篇文章主要为大家详细介绍了如何基于Python自动计算Excel数据指定范围内的区间最大值,文中的示例代码简洁易懂,感兴趣的小伙伴可以了解下
    2023-07-07
  • Python自动化办公之群发邮件案例详解

    Python自动化办公之群发邮件案例详解

    我们在办公时常常会遇到需要将邮件群发给很多客户,这个时候如何快速完成这一任务呢?不要慌,本文将为大家提供用Python代码解决这一问题的方法,需要的可以参考一下
    2022-02-02
  • python常用小脚本实例总结

    python常用小脚本实例总结

    在日常的工作中我们总会面临到各式各样的问题,下面这篇文章主要给大家介绍了关于python常用小脚本的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • Pycharm中SQL语句提示SQL Dialect is Not Configured的解决

    Pycharm中SQL语句提示SQL Dialect is Not Config

    这篇文章主要介绍了Pycharm中SQL语句提示SQL Dialect is Not Configured的解决方案,具有很好的参考价值,希望对大家有所帮助。
    2022-07-07
  • 关于torch中tensor数据类型的转换

    关于torch中tensor数据类型的转换

    这篇文章主要介绍了关于torch中tensor数据类型的转换方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • python用字节处理文件实例讲解

    python用字节处理文件实例讲解

    在本篇文章里小编给大家整理的是一篇关于python用字节处理文件实例讲解内容,有兴趣的朋友们可以学习参考下。
    2021-04-04
  • 使用python自动追踪你的快递(物流推送邮箱)

    使用python自动追踪你的快递(物流推送邮箱)

    本文讲解如何让 python自动为你查询快递信息 ,并在物流发生更新或者到达指定地点时第一时间将 物流推送至你的邮箱,本文通过实例代码截图的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-03-03

最新评论