鱼C论坛

 找回密码
 立即注册
查看: 1466|回复: 6

[已解决]如何让输入的时候,只看到 *****

[复制链接]
发表于 2021-3-25 23:34:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
【求助】有个疑问 在 input(‘请输入一个密码:’)运行的时候,让在屏幕上输入的密码显示为 ****
最佳答案
2021-3-25 23:56:29
本帖最后由 jackz007 于 2021-3-26 01:18 编辑
  1. #coding:gbk

  2. import msvcrt
  3. import sys

  4. def pas(prompt):
  5.     if prompt :
  6.         sys . stdout . write(prompt)
  7.         sys . stdout . flush()
  8.             
  9.     pwd , c = '' , 0
  10.     while True:
  11.         b = msvcrt . getch()
  12.         x = b . decode('gbk')
  13.         if ord(x) == 13:
  14.             break
  15.         elif ord(x) == 8:
  16.             if c:
  17.                 sys . stdout . write('\b \b')
  18.                 sys . stdout . flush()
  19.                 pwd = pwd[:-1]
  20.                 c -= 1
  21.         else:
  22.             pwd = pwd + x
  23.             sys . stdout . write('*')
  24.             sys . stdout . flush()
  25.             c += 1
  26.     sys . stdout . write('\n')
  27.     sys . stdout . flush()   
  28.     return pwd

  29. usr = input('输入用户名 : ') . strip()
  30. pwd = pas('  输入密码 : ')
  31. print('用户 :' , usr)
  32. print('密码 :' , pwd)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-25 23:38:31 | 显示全部楼层
个人认为这个就得要gui了吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-25 23:56:29 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2021-3-26 01:18 编辑
  1. #coding:gbk

  2. import msvcrt
  3. import sys

  4. def pas(prompt):
  5.     if prompt :
  6.         sys . stdout . write(prompt)
  7.         sys . stdout . flush()
  8.             
  9.     pwd , c = '' , 0
  10.     while True:
  11.         b = msvcrt . getch()
  12.         x = b . decode('gbk')
  13.         if ord(x) == 13:
  14.             break
  15.         elif ord(x) == 8:
  16.             if c:
  17.                 sys . stdout . write('\b \b')
  18.                 sys . stdout . flush()
  19.                 pwd = pwd[:-1]
  20.                 c -= 1
  21.         else:
  22.             pwd = pwd + x
  23.             sys . stdout . write('*')
  24.             sys . stdout . flush()
  25.             c += 1
  26.     sys . stdout . write('\n')
  27.     sys . stdout . flush()   
  28.     return pwd

  29. usr = input('输入用户名 : ') . strip()
  30. pwd = pas('  输入密码 : ')
  31. print('用户 :' , usr)
  32. print('密码 :' , pwd)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-3-26 02:09:04 | 显示全部楼层
如果你不需要密码回显的话,也就是输入的时候什么都不显示,就像 terminal 那种的,可以尝试一下这个:

  1. import getpass

  2. while True:
  3.     pswd = getpass.getpass('Password:')
  4.     print(pswd)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-3-26 06:39:23 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-26 09:50:15 | 显示全部楼层
我用tkinter实现的

  1. #!/usr/bin/python3

  2. from tkinter import *

  3. root = Tk()

  4. Label(root, text = "User Name ").grid(row = 0, column = 0)
  5. Label(root, text = "Pass word ").grid(row = 1, column = 0)

  6. e1 = Entry(root)
  7. e2 = Entry(root, show = "*")

  8. e1.grid(row = 0, column = 1, padx = 10, pady = 10)
  9. e2.grid(row = 1, column = 1, padx = 10, pady = 10)

  10. mainloop()
复制代码


主要是这行代码:
e2 = Entry(root, show = "*")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-27 12:24:20 From FishC Mobile | 显示全部楼层
这个我的主题里面有……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 22:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表