如何修改Python代码实现仅打印用户输入的有效Y/N选项
你看到的无效输入内容是input()函数默认的终端回显效果,要隐藏输入内容可以使用Python标准库自带的getpass模块实现无回显输入,校验通过后再主动打印有效结果即可,调整后的代码如下:
from getpass import getpass while True: # getpass的prompt参数为提示内容,用户输入不会自动回显 x = getpass(prompt="Y/N? ") if x in ("Y", "N"): # 校验通过后主动打印有效输入 print(x) break
运行后终端只会重复显示Y/N? 提示,所有用户输入的内容都不会回显,只有输入Y/N时才会把对应内容打印出来,完全符合你的需求。
补充说明:
getpass模块依赖标准终端环境,部分IDE的内置调试终端可能不支持该模块,在系统原生的命令行/终端中运行可以保证兼容性。- 可选优化:如果需要支持用户输入小写y/n也能识别,可以把判断条件改成
if x.upper() in ("Y", "N")即可。
内容的提问来源于stack exchange,提问作者user7864386
相关产品推荐
相关产品推荐

