def check_password(x):
while x != ("admin123"):
x = input("incorrect password \ntry again:")
return x
password = input("please type the password: ")
password = check_password(password)
print ("correct password")
出于安全原因,我试图用IDLE终端中的星号(*)替换用户输入的每个字符,因为用户将输入密码。我找到了一些替代方法,例如getpass()模块,但是getpass()没有为终端IDLE上的用户显示任何内容,告诉他他/她正在输入。因此,我决定寻找替代解决方案而不是getpass()。
答案 0 :(得分:0)
我已经写了这段代码,它为我做了工作
只需通过getch()
将用户的输入作为一系列字符不打印输出,然后在每次输入后打印*
import sys
import msvcrt
passwor = ''
while True:
x = msvcrt.getch()
if x == '\r':
break
sys.stdout.write('*')
passwor +=x
print '\n'+passwor