Python 控制台輸入密碼的方法

2022-07-07 21:12:13 字數 1318 閱讀 8596

1. raw_input() :

pwd 

=raw_input(

'password: ')

print

pwd#

password: aaa

#aaa

note:最簡單的方法,但是不安全

2. getpass.getpass() :

import

getpass

pwd 

=getpass.getpass(

'password: ')

print

pwd#

password:

#aaaa

note:很安全,但是看不到輸入的位數,會讓人覺得有點不習慣,不知道的還以為沒有在輸入..

3. msvcrt.getch() :

**import

msvcrt, sys

defpwd_input():

chars =

while

true:

newchar 

=msvcrt.getch()

ifnewchar in'

\r\n': 

#如果是換行,則輸入結束

print

''break

elif

newchar =='

\b': #

如果是退格,則刪除末尾一位

ifchars:

delchars[-1

]sys.stdout.write('\b

') #刪除乙個星號,但是不知道為什麼不能執行...

else'*

')#顯示為星號

print

''.join(chars)

pwd 

=pwd_input()

print

pwd#

******

#aaaaaa

note:解決了第二種方法不能顯示輸入位數的問題,但是如果按退格鍵(backspace)的話,雖然實際的是退格了,

但控制台卻沒有顯示相應的退格,比如,當前輸入是:abcd,顯示為:****,然後現在打乙個退格鍵,實際

輸入為:abc,而顯示仍為:****。不知道為什麼sys.stdout.write('\b

') 這行沒有執行,估計是和使用

msvcrt.getch()有關係,如果有人知道為啥請回覆一下,3q~

退格回車控制台輸入密碼

時間緊張,先記一筆,後續優化與完善。每日一道理 感嘆人生,是因為曾經沒有過轟轟烈烈的壯舉,覺得渺小,覺得平庸,似乎生活過於簡單,簡單得讓人感覺煩躁。沒有大言不慚地說過將來,只是比較現實地握住了現在,我想,這是一條路,每個人所必須踏上的一次旅程,曾經看到過這樣一句話 成長的過程漫長卻充實,自毀的過程短...

python讀取控制台輸入

筆試常用 input array n input for i in range 0 int n row line input temp str line.split for str in temp str int str print input array 輸入 31 2 3 4 5 6 7 8 9...

python筆試 接收控制台輸入

1.字元和數字混合 input 23 s raw input 此時s儲存就是整個輸入,之後就需要手動的去獲得裡面的資料了。一般常用的處理字串的操作 split,int,float等等 加上陣列切片就可以了 2.純數字 input 23.45 25 s input import sys for lin...