Python用户交互详解:raw_input与input的区别及密码输入技巧
本文深入解析Python中的用户交互机制,重点对比Python 2中raw_input()与Python 3中input()的行为差异。通过实例演示如何利用getpass模块实现不可见密码输入,并详细说明在Python 3中处理数字输入时需使用int()进行类型转换的方法,帮助开发者避免常见的类型错误。
1、raw_input():
raw_input()是Python语言提供的内建函数,主要用于通过控制台读取用户的输入内容,从而实现程序与用户之间的交互。
使用该函数可以接收用户输入的字符串数据,程序会暂停等待用户输入,随后将输入的内容存储到指定的变量中。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#将用户输入的内容赋值给变量user
user = raw_input("请输入用户名:")
#将用户输入的内容赋值给变量pwd
pwd = raw_input("请输入密码:")
#打印输入的内容
print(user)
print(pwd)
运行结果:

2、getpass模块:
当需要输入密码且希望屏幕不显示明文时,可以调用getpass模块中的getpass方法来实现这一功能,具体用法如下:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import getpass
user = raw_input("请输入用户名:")
#将用户输入的内容赋值给变量pwd
pwd = getpass.getpass("请输入密码:")
print(user)
print(pwd)
运行结果:

3、input():
如果在Python 3环境中直接使用raw_input(),程序会抛出命名错误(NameError),提示名称'raw_input'未定义:

在Python 2版本中,主要使用raw_input()函数来等待并获取用户输入;而在Python 3版本中,这一功能被input()函数所取代。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
user = input("请输入用户名:")
pwd = input("请输入密码:")
print(user)
print(pwd)
运行结果:

4、Python2 和 Python3 的区别:
由于Python 3版本中已经移除了raw_input()函数,因此开发者只能使用input()来进行用户交互。
在Python 2版本中虽然也存在input()函数,但其行为机制不同:它会直接对输入的内容进行求值处理,即输入什么格式的数据,它就将其当作相应的数据类型来处理。
在Python 3中使用input()函数时,无论用户输入何种内容,系统都会将其视为字符串类型。如果后续需要将输入内容与数字进行比较,直接操作会导致类型错误。因此,必须使用int()函数将输入的字符串显式转换为整数(前提是用户实际输入的是数字,否则转换会报错)。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
name = input("请输入数字,进行比较:")
if name < 9:
print("猜小了,请猜大一些")
elif name > 9:
print("猜大了,请猜小一些")
else:
print("猜正确了")
运行结果:

转换后:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
name = int(input("请输入数字,进行比较:"))
if name < 9:
print("猜小了,请猜大一些")
elif name > 9:
print("猜大了,请猜小一些")
else:
print("猜正确了")
运行结果:

以上关于Python基础知识中用户交互的讲解到此结束,希望能为读者提供有益的参考,也欢迎大家继续支持本站获取更多技术内容。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













