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之Python文档
Oct 10 Python
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
Jun 03 Python
使用python编写udp协议的ping程序方法
Apr 22 Python
python3中的md5加密实例
May 29 Python
python中使用psutil查看内存占用的情况
Jun 11 Python
Python中时间datetime的处理与转换用法总结
Feb 18 Python
python下的opencv画矩形和文字注释的实现方法
Jul 09 Python
Flask框架钩子函数功能与用法分析
Aug 02 Python
Python数据可视化实现正态分布(高斯分布)
Aug 21 Python
Django+Celery实现动态配置定时任务的方法示例
May 26 Python
Python中生成ndarray实例讲解
Feb 22 Python
七个非常实用的Python工具包总结
Jun 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
咖啡产品发展的三大浪潮
2021/03/04 咖啡文化
PHP5中MVC结构学习
2006/10/09 PHP
PHP has encountered an Access Violation
2007/01/15 PHP
PHP中动态显示签名和ip原理
2007/03/28 PHP
通过PHP CLI实现简单的数据库实时监控调度
2009/07/01 PHP
php+js实现异步图片上传实例分享
2014/06/02 PHP
php命令行用法入门实例教程
2014/10/27 PHP
PHP开发中常用的十个代码样例
2016/02/02 PHP
Zend Framework缓存Cache用法简单实例
2016/03/19 PHP
详解PHP字符串替换str_replace()函数四种用法
2017/10/13 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
浅析return false的正确使用
2013/11/04 Javascript
javascript从image转换为base64位编码的String
2014/07/29 Javascript
jQuery简单实现日历的方法
2015/05/04 Javascript
简单学习JavaScript中的for语句循环结构
2015/11/10 Javascript
非常漂亮的相册集 使用jquery制作相册集
2016/04/28 Javascript
JavaScript表单验证完美代码
2017/03/02 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
2017/04/10 Javascript
vue实现的微信机器人聊天功能案例【附源码下载】
2019/02/18 Javascript
vue+iview动态渲染表格详解
2019/03/19 Javascript
JS模拟实现京东快递单号查询
2020/11/30 Javascript
[53:21]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-CDEC
2014/05/22 DOTA
[04:49]2014DOTA2国际邀请赛 Newbee顺利挺进总决赛 ImbaTV独家专访
2014/07/19 DOTA
使用setup.py安装python包和卸载python包的方法
2013/11/27 Python
Python输出PowerPoint(ppt)文件中全部文字信息的方法
2015/04/28 Python
使用PIL(Python-Imaging)反转图像的颜色方法
2019/01/24 Python
python爬虫爬取幽默笑话网站
2019/10/24 Python
tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现
2020/02/06 Python
解决运行django程序出错问题 'str'object has no attribute'_meta'
2020/07/15 Python
美国老牌主机服务商:iPage
2016/07/22 全球购物
中国跨境在线时尚零售商:Bellelily
2018/04/06 全球购物
澳洲在线厨具商店:Kitchen Style
2018/05/05 全球购物
护理学毕业生自荐信
2013/10/02 职场文书
法院授权委托书格式
2014/09/28 职场文书
2015年六年级班主任工作总结
2015/10/15 职场文书