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的多重继承的理解
Aug 06 Python
Python2和Python3中print的用法示例总结
Oct 25 Python
Python callable()函数用法实例分析
Mar 17 Python
pandas进行数据的交集与并集方式的数据合并方法
Jun 27 Python
Python脚本完成post接口测试的实例
Dec 17 Python
python学生管理系统
Jan 30 Python
python pexpect ssh 远程登录服务器的方法
Feb 14 Python
Python算法的时间复杂度和空间复杂度(实例解析)
Nov 19 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
Feb 13 Python
详解Python3中的 input() 函数
Mar 18 Python
用python实现学生管理系统
Jul 24 Python
Python中OpenCV实现简单车牌字符切割
Jun 11 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 中的4种标记风格介绍
2012/05/10 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
JavaScript 创建对象和构造类实现代码
2009/07/30 Javascript
js nextSibling属性和previousSibling属性概述及使用注意
2013/02/16 Javascript
jQuery选择器简明总结(含用法实例,一目了然)
2014/04/25 Javascript
JS获取随机数函数可自定义最小值最大值
2014/05/08 Javascript
JQuery中上下文选择器实现方法
2015/05/18 Javascript
js实现滚动条滚动到页面底部继续加载
2015/12/19 Javascript
jQuery获取Table某列的值(推荐)
2017/03/03 Javascript
关于angular js_$watch监控属性和对象详解
2017/04/24 Javascript
js封装成插件的步骤方法
2017/09/11 Javascript
Vue-Router进阶之滚动行为详解
2017/09/13 Javascript
jquery中done和then的区别(详解)
2017/12/19 jQuery
vue.js中$set与数组更新方法
2018/03/08 Javascript
微信小程序实现多行文字滚动
2020/11/18 Javascript
可拖拽组件slider.js使用方法详解
2020/12/04 Javascript
[00:09]DOTA2全国高校联赛 精彩活动引爆全场
2018/05/30 DOTA
详解Python的Django框架中Manager方法的使用
2015/07/21 Python
Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案
2017/02/13 Python
深入理解Python分布式爬虫原理
2017/11/23 Python
python批量查询、汉字去重处理CSV文件
2018/05/31 Python
Python列表推导式与生成器用法分析
2018/08/02 Python
Python使用字典的嵌套功能详解
2019/02/27 Python
python实现合并两个排序的链表
2019/03/03 Python
使用python 将图片复制到系统剪贴中
2019/12/13 Python
Python面向对象中类(class)的简单理解与用法分析
2020/02/21 Python
django列表筛选功能的实现代码
2020/03/27 Python
Python创建自己的加密货币的示例
2021/03/01 Python
python Autopep8实现按PEP8风格自动排版Python代码
2021/03/02 Python
关于 HTML5 的七个传说小结
2012/04/12 HTML / CSS
人事助理自荐信
2014/02/02 职场文书
后进生评语大全
2015/01/04 职场文书
党员学习中国梦心得体会
2016/01/05 职场文书
2016年校园社会综合治理宣传月活动总结
2016/03/16 职场文书
Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
2021/11/17 Servers
基于Python实现将列表数据生成折线图
2022/03/23 Python