打印变量类型、用户输入、getpass不显示用户输入密码

本文介绍了Python中如何使用type函数打印变量的类型,包括字符串、整数和浮点数。同时,通过示例展示了如何利用input函数获取用户输入,并使用getpass模块更安全地读取密码。

使用type打印变量类型

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Administrator'
#定义变量
name = "Jerry"
age = 23
salary = 2345.12
#使用type打印变量类型
print(type(name))
print(type(age))
print(type(salary))

输出结果:
在这里插入图片描述
用户输入
处理用户输入使用input()

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Administrator'
_username = input("usernae:")
_password = input("password:")
print()   #打印空行
print("用户{username}输入的密码为:{password}".format(username=_username,password=_password))

代码中的print()意思是打印空行,运行结果如下:
在这里插入图片描述
getpass
getpass为python的标准库,标准库就是不用安装,直接可以使用

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import getpass
_username = input("username:")
_password = getpass.getpass("password:")
print()
print(_username,_password)

getpass在pycharm里边不好使,所以只能使用python password.py的方式来测试,运行结果:
在这里插入图片描述

在Python中实现输入密码功能有多种方法,以下为你详细介绍: ### 使用`getpass`模块 `getpass`模块是Python标准库的一部分,可用于在控制台输入密码输入内容显示出来,确保了密码的安全性。同操作系统上该模块的实现方式有所同,在Windows系统上,`getpass`函数将使用Windows API来隐藏输入内容;而在Unix系统上,`getpass`函数将默认使用`termios`模块来隐藏输入内容。示例代码如下: ```python import getpass password = getpass.getpass("请输入密码:") print("您输入密码是:", password) ``` 上述代码中,首先导入`getpass`模块,然后使用`getpass.getpass`函数提示用户输入密码,并将用户输入密码赋值给变量`password`,最后打印用户输入密码 [^1]。 ### 使用第三方库`getpass3` `getpass3`库是`getpass`模块的一个改进版本,提供了更多的功能和选项。示例代码如下: ```python import getpass3 password = getpass3.getpass("请输入密码:") print("您输入密码是:", password) ``` 此代码与使用`getpass`模块的示例类似,只是导入的是`getpass3`库,并使用`getpass3.getpass`函数来获取用户输入密码 [^1]。 ### 自定义函数实现并显示屏蔽符 若需要显示屏蔽符以提示自己确实正在输入密码,可以自定义函数实现。示例代码如下: ```python import sys, tty, termios def getch(): fd = sys.stdin.fileno() old_settings = termios.tcgetattr(fd) try: tty.setraw(sys.stdin.fileno()) ch = sys.stdin.read(1) finally: termios.tcsetattr(fd, termios.TCSADRAIN, old_settings) return ch def getpass(maskchar="*"): password = "" while True: ch = getch() if ch == "\r" or ch == "\n": print() return password elif ch == "\b" or ord(ch) == 127: if len(password) > 0: sys.stdout.write("\b \b") password = password[:-1] else: if maskchar != None: sys.stdout.write(maskchar) password += ch if __name__ == "__main__": print("Enter password:") password = getpass("*") print(password) ``` 上述代码自定义了`getch`函数用于获取单个字符,`getpass`函数用于获取密码并使用屏蔽符显示,最后调用`getpass`函数获取用户输入密码打印 [^2] [^4]。 ### 利用`msvcrt`模块(Windows) 在Windows系统中,还可以使用`msvcrt`模块实现输入密码功能,并且可以自定义屏蔽符。示例代码如下: ```python import msvcrt def inputPassword(): try: li = [] while True: ch = msvcrt.getch() if ch == b'\r': return ''.join(li) elif ch == b'\x08': if li: del li[-1] msvcrt.putch(b'\b') msvcrt.putch(b' ') msvcrt.putch(b'\b') elif ch == b'\x1a': raise EOFError else: li.append(ch.decode()) msvcrt.putch(b'*') except EOFError: pass password = inputPassword() print("您输入密码是:", password) ``` 此代码定义了`inputPassword`函数,使用`msvcrt.getch`获取用户输入的字符,根据同的字符进行相应处理,使用`*`作为屏蔽符,最后返回用户输入密码打印 [^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值