如何让输入的时候,只看到 *****
【求助】有个疑问 在 input(‘请输入一个密码:’)运行的时候,让在屏幕上输入的密码显示为 **** 个人认为这个就得要gui了吧{:10_254:} 本帖最后由 jackz007 于 2021-3-26 01:18 编辑#coding:gbk
import msvcrt
import sys
def pas(prompt):
if prompt :
sys . stdout . write(prompt)
sys . stdout . flush()
pwd , c = '' , 0
while True:
b = msvcrt . getch()
x = b . decode('gbk')
if ord(x) == 13:
break
elif ord(x) == 8:
if c:
sys . stdout . write('\b \b')
sys . stdout . flush()
pwd = pwd[:-1]
c -= 1
else:
pwd = pwd + x
sys . stdout . write('*')
sys . stdout . flush()
c += 1
sys . stdout . write('\n')
sys . stdout . flush()
return pwd
usr = input('输入用户名 : ') . strip()
pwd = pas('输入密码 : ')
print('用户 :' , usr)
print('密码 :' , pwd) 如果你不需要密码回显的话,也就是输入的时候什么都不显示,就像 terminal 那种的,可以尝试一下这个:
import getpass
while True:
pswd = getpass.getpass('Password:')
print(pswd)
{:10_249:} 我用tkinter实现的
#!/usr/bin/python3
from tkinter import *
root = Tk()
Label(root, text = "User Name ").grid(row = 0, column = 0)
Label(root, text = "Pass word ").grid(row = 1, column = 0)
e1 = Entry(root)
e2 = Entry(root, show = "*")
e1.grid(row = 0, column = 1, padx = 10, pady = 10)
e2.grid(row = 1, column = 1, padx = 10, pady = 10)
mainloop()
主要是这行代码:
e2 = Entry(root, show = "*") 这个我的主题里面有……
页:
[1]