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构造icmp echo请求和实现网络探测器功能代码分享
Jan 10 Python
Python虚拟环境virtualenv的安装与使用详解
May 28 Python
Python爬取十篇新闻统计TF-IDF
Jan 03 Python
在CMD命令行中运行python脚本的方法
May 12 Python
详解Python的hasattr() getattr() setattr() 函数使用方法
Jul 09 Python
Python 最大概率法进行汉语切分的方法
Dec 14 Python
Python中常用的8种字符串操作方法
May 06 Python
python三大神器之fabric使用教程
Jun 10 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
Nov 21 Python
python画环形图的方法
Mar 25 Python
在主流系统之上安装Pygame的方法
May 20 Python
Cpython解释器中的GIL全局解释器锁
Nov 09 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中根据某年第几天计算出日期年月日的代码
2011/02/24 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
Node.js实战 建立简单的Web服务器
2012/03/08 Javascript
Node.js(安装,启动,测试)
2014/06/09 Javascript
Active控件问题小结(附解决办法)
2016/06/09 Javascript
【经验总结】编写JavaScript代码时应遵循的14条规律
2016/06/20 Javascript
jQuery弹出层后禁用底部滚动条(移动端关闭回到原位置)
2016/08/29 Javascript
Jquery与Bootstrap实现后台管理页面增删改查功能示例
2017/01/22 Javascript
JavaScript实现定时页面跳转功能示例
2017/02/14 Javascript
jQuery实现文档树效果
2017/02/20 Javascript
AngularJS自定义指令实现面包屑功能完整实例
2017/05/17 Javascript
JavaScript enum枚举类型定义及使用方法
2020/05/15 Javascript
详解JavaScript 作用域
2020/07/14 Javascript
vue项目,代码提交至码云,iconfont的用法说明
2020/07/30 Javascript
vue 通过base64实现图片下载功能
2020/12/19 Vue.js
python学习手册中的python多态示例代码
2014/01/21 Python
python中sys.argv参数用法实例分析
2015/05/20 Python
Python操作列表之List.insert()方法的使用
2015/05/20 Python
python3中set(集合)的语法总结分享
2017/03/24 Python
python中将函数赋值给变量时需要注意的一些问题
2017/08/18 Python
python调用Delphi写的Dll代码示例
2017/12/05 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
python中安装django模块的方法
2020/03/12 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
Python实现石头剪刀布游戏
2021/01/20 Python
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
世界汽车零件:World Car Parts
2019/09/04 全球购物
实习教师自我鉴定
2013/12/12 职场文书
个人职业生涯规划书1500字
2013/12/31 职场文书
赔偿协议书范本
2014/04/15 职场文书
团队激励口号
2014/06/06 职场文书
物流专业求职信
2014/06/30 职场文书
公司借款担保书
2015/09/22 职场文书
Redis中一个String类型引发的惨案
2021/07/25 Redis
Python中super().__init__()测试以及理解
2021/12/06 Python