Python 实现“按任意键返回”和无回显输入

功能描述:

在某些应用场景中,需要实现“按任意键返回”这样的功能,在 Python 中如果使用内置函数 input() 的话必须有个回车键才表示输入结束,不够完美。

在 msvrct 标准库中,可以使用 getch()/getwch() 或 getche()/getwche() 函数实现“按任意键返回”这样的功能,其中 getch()和 getwch() 不回显,getche()和 getwche() 回显输入的字符。getwch()和 getwche() 返回 Unicode 字符,getch()和 getche() 返回字节。

另外,在标准库 getpass 中提供了 getpass 函数可以直接实现无回显输入,用来接收密码时不至于被人偷看到。
1. 按任意键返回
参考代码:

import msvcrt

print("按任意键返回。")
msvcrt.getwche()

2、无回显输入多字符

参考代码:

import msvcrt

pwd = []
print("请输入密码:",end = "",flush = True)
while True:
    ch = msvcrt.getwch()
    if ch == "\r":
        break
    pwd.append(ch)
print(f"\n你输入的密码是:{"",join(pwd)}")

3、无回显输入多字符

参考代码:

import getpass

pwd = getpass.getpass("请输入密码:")
print(f"你输入的密码是:{pwd}")