Python2中的raw_input() 与 input()


Posted in Python onJune 12, 2015

这两个均是 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 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个 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.

除非对 input() 有特别需要,否则一般情况下我们都是推荐使用 raw_input() 来与用户交互。

-------

今天参加某公司的笔试的时候,俺使用了 raw_input() 接受整数(返回的是字符串)并再用一行语句返回整型数据。杯具,当时不大确定能用 input() 这个函数!特此记录。

Python 相关文章推荐
Python中装饰器兼容加括号和不加括号的写法详解
Jul 05 Python
python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
Jan 17 Python
pandas创建新Dataframe并添加多行的实例
Apr 08 Python
解决Mac安装scrapy失败的问题
Jun 13 Python
Django中使用Celery的教程详解
Aug 24 Python
Python一行代码实现快速排序的方法
Apr 30 Python
Python基础学习之时间转换函数用法详解
Jun 18 Python
python实现串口自动触发工作的示例
Jul 02 Python
QT5 Designer 打不开的问题及解决方法
Aug 20 Python
PyCharm最新激活码PyCharm2020.2.3有效
Nov 18 Python
python中round函数保留两位小数的方法
Dec 04 Python
完美解决Pycharm中matplotlib画图中文乱码问题
Jan 11 Python
Windows下实现Python2和Python3两个版共存的方法
Jun 12 #Python
Python3中的2to3转换工具使用示例
Jun 12 #Python
Python中unittest模块做UT(单元测试)使用实例
Jun 12 #Python
搞笑的程序猿:看看你是哪种Python程序员
Jun 12 #Python
Python 3.x 新特性及10大变化
Jun 12 #Python
Python实现比较两个列表(list)范围
Jun 12 #Python
在Linux系统上安装Python的Scrapy框架的教程
Jun 11 #Python
You might like
PHP访问数据库集群的方法小结
2016/03/14 PHP
thinkPHP5.0框架引入Traits功能实例分析
2017/03/18 PHP
添加JavaScript重载函数的辅助方法2
2010/07/04 Javascript
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
2010/10/14 Javascript
Js-$.extend扩展方法使方法参数更灵活
2013/01/15 Javascript
探讨javascript是不是面向对象的语言
2013/11/21 Javascript
JavaScript排序算法之希尔排序的2个实例
2014/04/04 Javascript
Javascript Objects详解
2014/09/04 Javascript
EasyUi datagrid 实现表格分页
2015/02/10 Javascript
JS实现的新浪微博大厅文字内容滚动效果代码
2015/11/05 Javascript
Javascript生成全局唯一标识符(GUID,UUID)的方法
2016/02/27 Javascript
基于JavaScript实现类似于百度学术高级检索功能
2016/03/02 Javascript
JS多物体实现缓冲运动效果示例
2016/12/20 Javascript
JS库之Three.js 简易入门教程(详解之一)
2017/09/13 Javascript
解决vue 按钮多次点击重复提交数据问题
2018/05/10 Javascript
js实现微信聊天效果
2020/08/09 Javascript
vue 实现锚点功能操作
2020/08/10 Javascript
[58:12]Ti4第二日主赛事败者组 LGD vs iG 3
2014/07/21 DOTA
Python使用稀疏矩阵节省内存实例
2014/06/27 Python
Python入门篇之正则表达式
2014/10/20 Python
10款最好的Web开发的 Python 框架
2015/03/18 Python
一张图带我们入门Python基础教程
2017/02/05 Python
Linux下python3.7.0安装教程
2018/07/30 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
2019/12/10 Python
Python基于gevent实现文件字符串查找器
2020/08/11 Python
python collections模块的使用
2020/10/16 Python
幼师自我鉴定范文
2013/10/01 职场文书
领导接待方案
2014/03/13 职场文书
电子专业毕业生自荐信
2014/05/25 职场文书
公民代理授权委托书
2014/09/24 职场文书
教师考核评语大全
2014/12/31 职场文书
元宵节晚会主持词
2015/07/01 职场文书
体育部部长竞选稿
2015/11/21 职场文书
2016小学新学期寄语
2015/12/04 职场文书
2016年教师党员公开承诺书
2016/03/24 职场文书
浅谈golang package中init方法的多处定义及运行顺序问题
2021/05/06 Golang