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 20 Python
Python打印斐波拉契数列实例
Jul 07 Python
python中print的不换行即时输出的快速解决方法
Jul 20 Python
Python进度条实时显示处理进度的示例代码
Jan 30 Python
解决python删除文件的权限错误问题
Apr 24 Python
解决Pycharm运行时找不到文件的问题
Oct 29 Python
python利用跳板机ssh远程连接redis的方法
Feb 19 Python
django-rest-swagger的优化使用方法
Aug 29 Python
Python爬取腾讯视频评论的思路详解
Dec 19 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
Apr 12 Python
Pytorch转tflite方式
May 25 Python
PyCharm 解决找不到新打开项目的窗口问题
Jan 15 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/05/29 PHP
Thinkphp中import的几个用法详细介绍
2014/07/02 PHP
PHP控制前台弹出对话框的实现方法
2016/08/21 PHP
php 魔术常量详解及实例代码
2016/12/04 PHP
使用php实现网站验证码功能【推荐】
2017/02/09 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
php 中htmlentities导致中文无法查询问题
2018/09/10 PHP
SyntaxHighlighter代码加色使用方法
2008/09/07 Javascript
Extjs学习笔记之四 工具栏和菜单
2010/01/07 Javascript
jquery 插件学习(五)
2012/08/06 Javascript
jQuery动画效果相关方法实例分析
2015/12/31 Javascript
Ionic+AngularJS实现登录和注册带验证功能
2017/02/09 Javascript
jQuery简易时光轴实现方法示例
2017/03/13 Javascript
js Date()日期函数浏览器兼容问题解决方法
2017/09/12 Javascript
jQuery实现的卷帘门滑入滑出效果【案例】
2019/02/18 jQuery
详解为什么Vue中不要用index作为key(diff算法)
2020/04/04 Javascript
python使用win32com在百度空间插入html元素示例
2014/02/20 Python
python与php实现分割文件代码
2017/03/06 Python
Python配置mysql的教程(推荐)
2017/10/13 Python
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
2018/04/19 Python
为什么Python中没有&quot;a++&quot;这种写法
2018/11/27 Python
pyqt5 从本地选择图片 并显示在label上的实例
2019/06/13 Python
浅谈Python中os模块及shutil模块的常规操作
2020/04/03 Python
python获取整个网页源码的方法
2020/08/03 Python
New Era英国官网:美国棒球帽品牌
2018/03/21 全球购物
体验完美剃须:The Art of Shaving
2018/08/06 全球购物
美团网旗下网上订餐平台:美团外卖
2020/03/05 全球购物
医院门卫岗位职责
2013/12/30 职场文书
优秀大学生的自我评价
2014/01/16 职场文书
信用社员工先进事迹材料
2014/02/04 职场文书
霸气队列口号
2014/06/18 职场文书
2014年调度员工作总结
2014/11/19 职场文书
会计主管岗位职责
2015/04/02 职场文书
红与黑读书笔记
2015/06/29 职场文书
mysql 直接拷贝data 目录下文件还原数据的实现
2021/07/25 MySQL
vue使用Google Recaptcha验证的实现示例
2021/08/23 Vue.js