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中条件选择和循环语句使用方法介绍
Mar 13 Python
python练习程序批量修改文件名
Jan 16 Python
举例讲解Python设计模式编程中对抽象工厂模式的运用
Mar 02 Python
python自动发邮件库yagmail的示例代码
Feb 23 Python
Python 数据处理库 pandas 入门教程基本操作
Apr 19 Python
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
May 24 Python
Django添加sitemap的方法示例
Aug 06 Python
Python全栈之列表数据类型详解
Oct 01 Python
Django单元测试中Fixtures的使用方法
Feb 26 Python
python的pip有什么用
Jun 17 Python
termux中matplotlib无法显示中文问题的解决方法
Jan 11 Python
Python3接口性能测试实例代码
Jun 20 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实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
Javascript开发包大全整理
2006/12/22 Javascript
刷新页面实现方式总结(HTML,ASP,JS)
2008/11/13 Javascript
JavaScript中使用replace结合正则实现replaceAll的效果
2010/06/04 Javascript
JQuery EasyUI 对话框的使用方法
2010/10/24 Javascript
最常用的12种设计模式小结
2011/08/09 Javascript
jquery选择器的选择使用及性能介绍
2013/01/16 Javascript
raphael.js绘制中国地图 地图绘制方法
2014/02/12 Javascript
js中的setInterval和setTimeout使用实例
2014/05/09 Javascript
JavaScript onkeypress事件入门实例(按下或按住一个键盘按键)
2014/10/17 Javascript
学习javascript面向对象 掌握创建对象的9种方式
2016/01/04 Javascript
input 禁止输入特殊字符的四种实现方式
2016/08/24 Javascript
JS中对数组元素进行增删改移的方法总结
2016/12/15 Javascript
Vue包大小优化的实现(从1.72M到94K)
2021/02/18 Vue.js
[02:12]探秘2016国际邀请赛中国区预选赛选手房间
2016/06/25 DOTA
[55:03]LGD vs EG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python数组复制拷贝的实现方法
2015/06/09 Python
简单谈谈Python中的闭包
2016/11/30 Python
详解常用查找数据结构及算法(Python实现)
2016/12/09 Python
基于Python3.6+splinter实现自动抢火车票
2018/09/25 Python
Centos部署django服务nginx+uwsgi的方法
2019/01/02 Python
Django框架使用内置方法实现登录功能详解
2019/06/12 Python
基于树莓派的语音对话机器人
2019/06/17 Python
python安装requests库的实例代码
2019/06/25 Python
Django REST框架创建一个简单的Api实例讲解
2019/11/05 Python
python pymysql链接数据库查询结果转为Dataframe实例
2020/06/05 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
解决Pymongo insert时会自动添加_id的问题
2020/12/05 Python
阿里旅行:飞猪
2017/01/05 全球购物
bareMinerals官网:矿物质化妆品和护肤品
2018/02/04 全球购物
自荐信要包含哪些内容
2013/11/06 职场文书
魅力教师事迹材料
2014/01/10 职场文书
光信息科学与技术专业职业生涯规划
2014/03/13 职场文书
群众路线个人对照检查材料2014
2014/09/26 职场文书
无刑事犯罪记录证明范本
2014/09/29 职场文书
Python绘画好看的星空图
2022/03/17 Python