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 功能和特点(新手必学)
Dec 30 Python
Python图像灰度变换及图像数组操作
Jan 27 Python
浅析AST抽象语法树及Python代码实现
Jun 06 Python
Python操作Redis之设置key的过期时间实例代码
Jan 25 Python
Python异常对代码运行性能的影响实例解析
Feb 08 Python
详解python的ORM中Pony用法
Feb 09 Python
Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析
Apr 12 Python
Python Django的安装配置教程图文详解
Jul 17 Python
Python使用type关键字创建类步骤详解
Jul 23 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
Feb 16 Python
python seaborn heatmap可视化相关性矩阵实例
Jun 03 Python
Pycharm及python安装详细教程(图解)
Jul 31 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
作为程序员必知的16个最佳PHP库
2015/12/09 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
phpstorm激活码2020附使用详细教程
2020/09/25 PHP
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
2007/05/03 Javascript
使用jquery给input和textarea设定ie中的focus
2008/05/29 Javascript
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
2009/07/18 Javascript
jQuery获取注册信息并提示实现代码
2013/04/21 Javascript
使用JavaScript 实现各种跨域的方法
2013/05/08 Javascript
jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
2013/07/01 Javascript
IE、FF浏览器下修改标签透明度
2014/01/28 Javascript
AngularJS语法详解(续)
2015/01/23 Javascript
JS实现简洁、全兼容的拖动层实例
2015/05/13 Javascript
你所不了解的javascript操作DOM的细节知识点(一)
2015/06/17 Javascript
JS动态添加选项案例分析
2016/10/17 Javascript
使用vue中的混入mixin优化表单验证插件问题
2019/07/02 Javascript
JS实现的tab切换并显示相应内容模块功能示例
2019/08/03 Javascript
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
微信小程序停止其他视频播放当前视频的实例代码
2019/12/25 Javascript
vue中英文切换实例代码
2020/01/21 Javascript
关于vue的列表图片选中打钩操作
2020/09/09 Javascript
python和shell变量互相传递的几种方法
2013/11/20 Python
Python爬取网易云音乐上评论火爆的歌曲
2017/01/19 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
Python实现程序判断季节的代码示例
2019/01/28 Python
Django使用AJAX调用自己写的API接口的方法
2019/03/06 Python
python制作微博图片爬取工具
2021/01/16 Python
乐高奥地利官方商店:LEGO Shop AT
2019/07/16 全球购物
Jar包的作用是什么
2014/03/30 面试题
高三历史教学反思
2014/01/09 职场文书
文明家庭先进事迹材
2014/01/27 职场文书
2014感恩节演讲稿大全
2014/10/11 职场文书
五年级下册复习计划
2015/01/19 职场文书
职位证明模板
2015/06/23 职场文书
咖啡厅里的创业计划书
2019/08/21 职场文书
vue中控制mock在开发环境使用,在生产环境禁用方式
2022/04/06 Vue.js