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获取指定路径下所有指定后缀文件的方法
May 26 Python
Python获取指定字符前面的所有字符方法
May 02 Python
python中计算一个列表中连续相同的元素个数方法
Jun 29 Python
python使用xlrd模块读取xlsx文件中的ip方法
Jan 11 Python
对Python Class之间函数的调用关系详解
Jan 23 Python
Python Django Cookie 简单用法解析
Aug 13 Python
基于python cut和qcut的用法及区别详解
Nov 22 Python
基于python的列表list和集合set操作
Nov 24 Python
python实现录屏功能(亲测好用)
Mar 02 Python
Tensorflow中的dropout的使用方法
Mar 13 Python
使用python-Jenkins批量创建及修改jobs操作
May 12 Python
Django项目如何正确配置日志(logging)
Apr 29 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
codeigniter数据库操作函数汇总
2014/06/12 PHP
php数值计算num类简单操作示例
2020/05/15 PHP
javascript+mapbar实现地图定位
2010/04/09 Javascript
jQuery实现的立体文字渐变效果
2010/05/17 Javascript
JQuery index()方法使用代码
2010/06/02 Javascript
jquery实现表格奇数偶数行不同样式(有图为证及实现代码)
2013/01/23 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
jquery动态改变form属性提交表单
2014/06/03 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
2015/09/12 Javascript
一篇文章掌握RequireJS常用知识
2016/01/26 Javascript
JavaScript中Array的实用操作技巧分享
2016/09/11 Javascript
jQuery progressbar通过Ajax请求实现后台进度实时功能
2016/10/11 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
vue.js中v-on:textInput无法执行事件问题的解决过程
2017/07/12 Javascript
动态创建Angular组件实现popup弹窗功能
2017/09/15 Javascript
ES6 迭代器(Iterator)和 for.of循环使用方法学习(总结)
2018/02/08 Javascript
Vue CLI3 开启gzip压缩文件的方式
2018/09/30 Javascript
js根据json数据中的某一个属性来给数据分组的方法
2018/10/08 Javascript
详解Vue.directive 自定义指令
2019/03/27 Javascript
vue登录页面cookie的使用及页面跳转代码
2019/07/10 Javascript
element-ui树形控件后台返回的数据+生成组织树的工具类
2020/03/05 Javascript
基于js实现判断浏览器类型代码实例
2020/07/17 Javascript
three.js着色器材质的内置变量示例详解
2020/08/16 Javascript
[01:20:06]TNC vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[48:28]完美世界DOTA2联赛循环赛FTD vs Magma第二场 10月30日
2020/10/31 DOTA
Python神奇的内置函数locals的实例讲解
2019/02/22 Python
使用python接入微信聊天机器人
2020/03/31 Python
python3.6根据m3u8下载mp4视频
2019/06/17 Python
django框架模板中定义变量(set variable in django template)的方法分析
2019/06/24 Python
Django Form and ModelForm的区别与使用
2019/12/06 Python
python matplotlib imshow热图坐标替换/映射实例
2020/03/14 Python
基于K.image_data_format() == 'channels_first' 的理解
2020/06/29 Python
服装促销活动方案
2014/02/23 职场文书
成龙洗发水广告词
2014/03/14 职场文书
2015年光棍节活动总结
2015/03/24 职场文书
女性健康讲座主持词
2015/07/04 职场文书