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判断变量是否为Json格式的字符串示例
May 03 Python
Django开发中的日志输出的方法
Jul 02 Python
python opencv实现运动检测
Jul 10 Python
在IPython中进行Python程序执行时间的测量方法
Nov 01 Python
Python3中列表list合并的四种方法
Apr 19 Python
对python 树状嵌套结构的实现思路详解
Aug 09 Python
画pytorch模型图,以及参数计算的方法
Aug 17 Python
Django 项目布局方法(值得推荐)
Mar 22 Python
Python selenium模拟手动操作实现无人值守刷积分功能
May 13 Python
用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)
Jun 04 Python
python 如何用terminal输入参数
May 25 Python
python如何利用cv2.rectangle()绘制矩形框
Dec 24 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正则表达式详解
2016/01/04 PHP
TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法小结
2020/02/10 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
encode脚本和normal脚本混用的问题与解决方法
2007/03/08 Javascript
Jquery Select操作方法集合脚本之家特别版
2010/05/17 Javascript
Js Jquery创建一个弹出层可加载一个页面
2014/05/08 Javascript
JSON.stringify转换JSON时日期时间不准确的解决方法
2014/08/08 Javascript
jQuery中:reset选择器用法实例
2015/01/04 Javascript
对象题目的一个坑 理解Javascript对象
2015/12/22 Javascript
一道常被人轻视的web前端常见面试题(JS)
2016/02/15 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
JavaScript中setter和getter方法介绍
2016/07/11 Javascript
javascript 数组的正态分布排序的问题
2016/07/31 Javascript
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码
2017/01/12 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
ES6正则表达式扩展笔记
2017/07/25 Javascript
vue.js轮播图组件使用方法详解
2018/07/03 Javascript
JavaScript ES6常用基础知识总结
2019/02/09 Javascript
微信小程序云开发如何使用npm安装依赖
2019/05/18 Javascript
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
2017/12/12 Python
简单的python协同过滤程序实例代码
2018/01/31 Python
详解分布式任务队列Celery使用说明
2018/11/29 Python
python检测IP地址变化并触发事件
2018/12/26 Python
浅谈python函数调用返回两个或多个变量的方法
2019/01/23 Python
python 实现一次性在文件中写入多行的方法
2019/01/28 Python
python生成随机红包的实例写法
2019/09/02 Python
Python转换itertools.chain对象为数组的方法
2020/02/07 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
2020/05/12 Python
CSS3弹性盒模型开发笔记(二)
2016/04/26 HTML / CSS
Linux文件系统类型
2012/09/16 面试题
运动会口号8字
2014/06/07 职场文书
产品委托授权书范本
2014/09/16 职场文书
婚前协议书怎么写,才具有法律效力呢 ?
2019/06/28 职场文书
html5实现点击弹出图片功能
2021/07/16 HTML / CSS
SQL Server Agent 服务无法启动
2022/04/20 SQL Server
Golang解析JSON对象
2022/04/30 Golang