国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現控制臺輸入密碼的方法

2020-01-04 18:09:37
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了Python實現控制臺輸入密碼的方法,實例對比分析了幾種輸入密碼的方法,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了Python實現控制臺輸入密碼的方法。分享給大家供大家參考。具體如下:

1. raw_input() :

 

 
  1. pwd = raw_input('password: '
  2. print pwd 
  3. # password: aaa 
  4. # aaa 

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

2. getpass.getpass() :

 

 
  1. import getpass 
  2. pwd = getpass.getpass('password: '
  3. print pwd 
  4. # password: 
  5. # aaaa 

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

3. msvcrt.getch() :

代碼如下:

 

 
  1. import msvcrt, sys 
  2. def pwd_input(): 
  3. chars = [] 
  4. while True
  5. newChar = msvcrt.getch() 
  6. if newChar in '/r/n'
  7. # 如果是換行,則輸入結束 
  8. print '' 
  9. break 
  10. elif newChar == '/b'
  11. # 如果是退格,則刪除末尾一位 
  12. if chars: 
  13. del chars[-1
  14. sys.stdout.write('/b'
  15. # 刪除一個星號,但是不知道為什么不能執行... 
  16. else
  17. chars.append(newChar) 
  18. sys.stdout.write('*'
  19. # 顯示為星號 
  20. print ''.join(chars) 
  21. pwd = pwd_input() 
  22. print pwd 
  23. # ****** 
  24. # aaaaaa 

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

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

輸入為:abc,而顯示仍為:****。不知道為什么 sys.stdout.write('/b') 這行沒有執行,估計是和使用msvcrt.getch()有關系。感興趣的朋友可以進一步研究一下。

希望本文所述對大家的Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 尼勒克县| 渭源县| 喀什市| 孝昌县| 十堰市| 卫辉市| 曲沃县| 精河县| 杭州市| 蒙山县| 石嘴山市| 射洪县| 左云县| 双江| 秀山| 噶尔县| 栖霞市| 宁波市| 阜南县| 长春市| 连南| 平度市| 乌苏市| 竹北市| 安丘市| 定南县| 乌鲁木齐县| 出国| 开化县| 柘荣县| 温州市| 五台县| 朔州市| 理塘县| 扬中市| 彭州市| 民和| 九龙县| 墨脱县| 汉源县| 台东县|