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实现360的字符显示界面
Feb 21 Python
Python ORM框架SQLAlchemy学习笔记之数据查询实例
Jun 10 Python
python实现查询IP地址所在地
Mar 29 Python
Python实现针对含中文字符串的截取功能示例
Sep 22 Python
Python实现线程状态监测简单示例
Mar 28 Python
python实现windows下文件备份脚本
May 27 Python
python pandas中对Series数据进行轴向连接的实例
Jun 08 Python
更改Python的pip install 默认安装依赖路径方法详解
Oct 27 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
Apr 29 Python
Django使用中间件解决前后端同源策略问题
Sep 02 Python
Django Admin 上传文件到七牛云的示例代码
Jun 20 Python
Django数据模型中on_delete使用详解
Nov 30 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
PHP动态变静态原理
2006/11/25 PHP
dede3.1分页文字采集过滤规则详说(图文教程)续四
2007/04/03 PHP
php中删除数组的第一个元素和最后一个元素的函数
2015/03/07 PHP
PHP7新增运算符用法实例分析
2016/09/26 PHP
PHP后台微信支付和支付宝支付开发
2017/04/28 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
javascript实现面向对象类的功能书写技巧
2010/03/07 Javascript
JavaScript对象链式操作代码(jquery)
2010/07/04 Javascript
javascript中键盘事件用法实例分析
2015/01/30 Javascript
解析AngularJS中get请求URL出现的跨域问题
2016/12/01 Javascript
如何解决jQuery EasyUI 已打开Tab重新加载问题
2016/12/19 Javascript
jquery中用函数来设置css样式
2016/12/22 Javascript
谈谈JavaScript数组常用方法总结
2017/01/24 Javascript
AngularJS中ng-class用法实例分析
2017/07/06 Javascript
微信小程序表单弹窗实例
2018/07/19 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
2018/10/20 Javascript
angular使用md5,CryptoJS des加密的方法
2019/06/03 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
2019/09/18 Javascript
python监控网站运行异常并发送邮件的方法
2015/03/13 Python
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
对numpy中的数组条件筛选功能详解
2018/07/02 Python
python numpy数组的索引和切片的操作方法
2018/10/20 Python
Django组件cookie与session的具体使用
2019/06/05 Python
Python paramiko模块使用解析(实现ssh)
2019/08/30 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
Python基于pip实现离线打包过程详解
2020/05/15 Python
python使用列表的最佳方案
2020/08/12 Python
使用CSS Grid布局实现网格的流动
2014/12/30 HTML / CSS
俄罗斯最大的香水和化妆品网上商店:Randewoo
2020/11/05 全球购物
同步和异步有何异同,在什么情况下分别使用他们
2013/04/09 面试题
中学校庆方案
2014/03/17 职场文书
党员民主生活会整改措施
2014/09/26 职场文书
2014年实习生工作总结
2014/11/27 职场文书
热爱劳动主题班会
2015/08/14 职场文书
Python实现单例模式的5种方法
2021/06/15 Python
浅谈Go语言多态的实现与interface使用
2021/06/16 Golang