msvcrt模块实例——input()输入密码变成*

一、需求

        从控制台输入密码时,密码变成*

二、分析

        input()只能输入明文数据,无法实现变更输入数据成*。可通过msvcrt模块实现需求。

三、实现方式

"""方案二:将输入密码变成*号
msvcrt模块为Python提供许多直接与操作系统交互的方法,
getch()函数用于从控制台获取一个字符的输入
putch()函数用于将一个字符输出到控制台
"""
import msvcrt

# print(xx,flush=True),将内存中的数据直接显示在屏幕上
print('password: ', end='', flush=True)

# 以栈的形式存储输入的密码
li = []

while 1:
    ch = msvcrt.getch()
    #回车(enter)
    if ch == b'\r':
        msvcrt.putch(b'\n') # 相当于print()
        print('输入的密码是:%s' % b''.join(li).decode())
        break
    # 退格(backspace)
    elif ch == b'\x08':
        if li:
            li.pop()    # 将栈中最后进来的元素退栈
            msvcrt.putch(b'\b') # 输出一个退格(backspace),光标左移
            msvcrt.putch(b' ')  # 在光标位置输出空格
            msvcrt.putch(b'\b') # 输出空格后,光标再进行一次左
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值