Python内建函数之raw_input()与input()代码解析


Posted in Python onOctober 26, 2017

这两个均是 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() 来与用户交互。

总结

以上就是本文关于Python内建函数之raw_input()与input()代码解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:Python面向对象编程基础解析(二)、Python探索之ModelForm代码详解、python中requests爬去网页内容出现乱码问题解决方法介绍等,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
python获得图片base64编码示例
Jan 16 Python
用Python从零实现贝叶斯分类器的机器学习的教程
Mar 31 Python
详解在Python的Django框架中创建模板库的方法
Jul 20 Python
python中常用的九种预处理方法分享
Sep 11 Python
Anaconda多环境多版本python配置操作方法
Sep 12 Python
关于Python正则表达式 findall函数问题详解
Mar 22 Python
面向初学者的Python编辑器Mu
Oct 08 Python
使用Python实现在Windows下安装Django
Oct 17 Python
python使用knn实现特征向量分类
Dec 26 Python
Python pandas自定义函数的使用方法示例
Nov 20 Python
Python 求数组局部最大值的实例
Nov 26 Python
python怎么对数字进行过滤
Jul 05 Python
python分布式环境下的限流器的示例
Oct 26 #Python
Python Nose框架编写测试用例方法
Oct 26 #Python
Python面向对象编程基础解析(二)
Oct 26 #Python
Python面向对象编程基础解析(一)
Oct 26 #Python
获取Django项目的全部url方法详解
Oct 26 #Python
Python探索之ModelForm代码详解
Oct 26 #Python
启动targetcli时遇到错误解决办法
Oct 26 #Python
You might like
AJAX for PHP简单表数据查询实例
2007/01/02 PHP
php 上传功能实例代码
2010/04/13 PHP
PHP获取数组中某元素的位置及array_keys函数应用
2013/01/29 PHP
浅谈php serialize()与unserialize()的用法
2013/06/05 PHP
php去掉文件前几行的方法
2015/07/29 PHP
CI框架中类的自动加载问题分析
2016/11/21 PHP
jquery判断单个复选框是否被选中的代码
2009/09/03 Javascript
Jquery 获取表单text,areatext,radio,checkbox,select值的代码
2009/11/12 Javascript
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
三种方式获取XMLHttpRequest对象
2014/04/21 Javascript
JQuery弹出层示例可自定义
2014/05/19 Javascript
jQuery实现渐变下拉菜单的简单方法
2015/03/11 Javascript
Angular.js之作用域scope'@','=','&amp;'实例详解
2017/02/28 Javascript
js利用for in循环获取 一个对象的所有属性以及值的实例
2017/03/30 Javascript
vue实现简单表格组件实例详解
2017/04/16 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
2017/04/22 Javascript
vue-baidu-map 进入页面自动定位的解决方案(推荐)
2018/04/28 Javascript
对vue中的事件穿透与禁止穿透实例详解
2019/10/28 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
利用Vue的v-for和v-bind实现列表颜色切换
2020/07/17 Javascript
浅析JavaScript 函数柯里化
2020/09/08 Javascript
JavaScript中如何调用Java方法
2020/09/16 Javascript
Python实用日期时间处理方法汇总
2015/05/09 Python
python简单猜数游戏实例
2015/07/09 Python
python中Pycharm 输出中文或打印中文乱码现象的解决办法
2017/06/16 Python
Django的models中on_delete参数详解
2019/07/16 Python
python 字段拆分详解
2019/12/17 Python
Mac中PyCharm配置Anaconda环境的方法
2020/03/04 Python
Zooplus葡萄牙:欧洲领先的网上宠物商店
2018/07/01 全球购物
公司同意接收函
2014/01/13 职场文书
大学生个人事迹材料
2014/01/21 职场文书
女儿十岁生日答谢词
2014/01/27 职场文书
出纳员岗位职责
2014/03/13 职场文书
求职意向书
2014/07/29 职场文书
材料员岗位职责
2015/02/10 职场文书
话题作文之诚信
2019/11/28 职场文书