提示用户退出程序,你的做法是青铜还是王者?
2023-03-14 09:39:05 时间
大家在写Python脚本时,经常会遇到用户交互的场景,然而其中不可或缺的一步就是告诉用户,输入某某键退出...那么,今天就来盘点下,有哪些实现退出场景的方式吧。
青铜级别
- # 青铜
- import sys
- user_input = input("输入q,退出程序")
- if user_input == 'q':
- sys.exit()
使用input来判断用户输入的方式,应该是最low的了吧?不仅需要输入,还需要用户敲击回车,才能够完成参数获取...适合Python入门一周的小选手。
白银级别
- # 白银
- import msvcrt
- user_input = msvcrt.getche()
- if user_input.decode() == 'q':
- exit()
msvcrt模块允许您访问Microsoft Visual C / C ++运行时库(MSVCRT)中的许多函数,可以动态监听单个char字符,然后返回byte字节。所以当你的退出不是单个字符,而是字符串时,还需要进一步封装...
王者级别
- # 王者
- import msvcrt
- quit_command = 'quit'
- listening_str = ''
- while True:
- user_input = msvcrt.getche()
- if isinstance(user_input, bytes):
- user_input = user_input.decode()
- if user_input == '\b':
- listening_str = listening_str[:-1]
- elif user_input in ['\n', '\r']:
- listening_str = ''
- else:
- listening_str += user_input
- print('listening_str now is: %s' % listening_str)
- if listening_str == quit_command:
- exit()
我们通过一个while循环实时监控用户的输入,当用户回车时,清空字符串缓存。并且支持了用户的删除退格操作操作。相比于前两者仅支持单次判定更提升了功能。来看看下图的测试示例:
让我们通过上图看下效果,简单执行几个场景的用例测试,均满足要求。有涉及到的用户退出监听的朋友们,快去感受下吧...
Tips:所有的用户监听操作,都不能直接在Pycharm下使用,会存在冲突,因为软件本身就是监听用户的一种哦...
相关文章
- iOS开发者须知:你在开发过程中可能会遇到的问题
- 如何用PHP实现Socket服务器
- 大数据:企业的潜在机遇和风险
- 如何让顾客愿意分享个人数据?
- PHP网站常见安全漏洞及防御方法
- 企业使用大数据技术的5种主要方式
- 2015 年度 Eclipse 社区报告
- 欧美顶尖大学是如何使用大数据的?
- Chrome 浏览器强势追赶 IE,360 被百度除名
- 数据分析——2018年企业不可缺少的能力
- 高级程序员成长一般来说需要这么几个阶段
- 如何追踪GitHub项目的流行度
- 想成为优秀的程序员这些码德不能缺
- 数化万物 智在融合——2018数博会将于五月开幕
- Hadoop分布式文件系统--HDFS的诞生
- 针对PHP开发安全问题的相关总结
- 招聘者决定招入程序员会考虑的必要因素
- 外媒速递:Hadoop对Spark的正面比拼报告
- 做一个有想法的程序员 做一个属于自己的神器
- 尝试十种作法 让你离牛逼程序猿更进一步