Python中raw_input()与input()的区别详解

花开有时
花开有时
发布时间:2026-10-13| 3人浏览过
原创

本文深入解析Python内建函数raw_input()与input()的功能差异。raw_input()始终将输入视为字符串,而input()会尝试执行输入的Python表达式并返回对应类型。文章通过代码示例说明两者在处理字符串和数字输入时的不同行为,并建议一般交互场景优先使用raw_input()。

这两个函数均为Python的内建函数,主要用于读取控制台输入并与用户进行交互。尽管目的相似,但它们的具体功能存在显著差异。以下通过两个具体示例进行说明。

 >>> raw_input_A = raw_input("raw_input: ")
 raw_input: abc >>> input_A = input("Input: ")
 Input: abc
 Traceback(most recent call last):
   File "<pyshell#1>", line 1, in < module >
   input_A = input("Input: ")
 File "<string>", line 1, in < module >
   NameError: name 'abc'
 is not defined
   >>> input_A = input("Input: ")
 Input: "abc" >>>
>>> raw_input_B = raw_input("raw_input: ")
raw_input: 123 >>> type(raw_input_B) < type 'str' >
  >>> input_B = input("input: ")
input: 123 >>> type(input_B) < type 'int' >
  >>>

从示例1可以看出,这两个函数都能接收字符串类型的输入。然而,raw_input()直接读取控制台的原始输入内容,能够接收任何类型的输入数据。相比之下,input()期望读取一个合法的Python表达式。这意味着,在使用input()时,如果输入的是字符串,必须使用引号将其包裹,否则程序会抛出SyntaxError(语法错误)。

从示例2可以看出,raw_input()将所有输入内容均视为字符串处理,其返回值类型始终为字符串。而input()在处理纯数字输入时具有特殊行为,它会返回所输入数字的实际数据类型(如int或float)。此外,结合示例1可知,input()能够接受合法的Python表达式。例如,执行input(1+3)会计算该表达式并返回int类型的结果4。

查阅Built-in Functions(内建函数)文档可知:

input([prompt]) Equivalent to eval(raw_input(prompt))

input()的本质实现依赖于raw_input()。具体而言,它先调用raw_input()获取用户输入,随后再调用eval()函数对结果进行求值。因此,用户甚至可以将表达式作为input()的参数传入,系统会计算该表达式的值并返回结果。

然而,在Built-in Functions文档中有一条建议:Consider using the raw_input() function for general input from users.(建议对于用户的常规输入使用raw_input()函数。)

除非对input()有特定的功能需求,否则在一般情况下,官方推荐使用raw_input()来处理与用户的交互。

总结

以上为关于Python内建函数raw_input()与input()的详细解析,希望能对大家有所帮助。感兴趣的朋友可继续查阅本站其他文章,如Python面向对象编程基础解析(二)、Python探索之ModelForm代码详解、python中requests爬取网页内容出现乱码问题解决方法介绍等。如有不足之处,欢迎留言指正。感谢各位对本站的支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。