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去掉字符串中重复字符的方法
Feb 27 Python
Python脚本获取操作系统版本信息
Dec 17 Python
深入理解Django中内置的用户认证
Oct 06 Python
Flask框架配置与调试操作示例
Jul 23 Python
python定向爬虫校园论坛帖子信息
Jul 23 Python
Python类和对象的定义与实际应用案例分析
Dec 27 Python
Python Pandas中根据列的值选取多行数据
Jul 08 Python
Python Django 命名空间模式的实现
Aug 09 Python
keras中epoch,batch,loss,val_loss用法说明
Jul 02 Python
浅谈对python中if、elif、else的误解
Aug 20 Python
Django实现微信小程序支付的示例代码
Sep 03 Python
Selenium关闭INFO:CONSOLE提示的解决
Dec 07 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
Windows下XDebug 手工配置与使用说明
2010/07/11 PHP
PHP制作用户注册系统
2015/10/23 PHP
php类的自动加载操作实例详解
2016/09/28 PHP
PHP对XML内容进行修改和删除实例代码
2016/10/26 PHP
php使用fullcalendar日历插件详解
2019/03/06 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
2019/10/11 PHP
判断iframe是否加载完成的完美方法
2010/01/07 Javascript
JS 控件事件小结
2012/10/31 Javascript
使用js判断数组中是否包含某一元素(类似于php中的in_array())
2013/12/12 Javascript
对JavaScript的全文搜索实现相关度评分的功能的方法
2015/06/24 Javascript
全面理解JavaScript中的闭包
2016/05/12 Javascript
轮播的简单实现方法
2016/07/28 Javascript
详解Vue SSR( Vue2 + Koa2 + Webpack4)配置指南
2018/11/13 Javascript
小程序实现自定义导航栏适配完美版
2019/04/02 Javascript
微信小程序静默登录的实现代码
2020/01/08 Javascript
JavaScript监听一个DOM元素大小变化
2020/04/26 Javascript
Bootstrap table 服务器端分页功能实现方法示例
2020/06/01 Javascript
typescript配置alias的详细步骤
2020/08/12 Javascript
[48:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 VG vs KG
2018/03/31 DOTA
[46:55]完美世界DOTA2联赛决赛 FTD vs Phoenix 第三场 11.08
2020/11/11 DOTA
Pandas探索之高性能函数eval和query解析
2017/10/28 Python
Python操作Oracle数据库的简单方法和封装类实例
2018/05/07 Python
关于python2 csv写入空白行的问题
2018/06/22 Python
python excel转换csv代码实例
2019/08/26 Python
Python pandas实现excel工作表合并功能详解
2019/08/29 Python
Python操作SQLite数据库过程解析
2019/09/02 Python
python3中利用filter函数输出小于某个数的所有回文数实例
2019/11/24 Python
使用tensorflow显示pb模型的所有网络结点方式
2020/01/23 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
2021/01/27 Python
什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
2012/05/23 面试题
数学专业毕业生自荐信
2013/11/10 职场文书
办公室文秘岗位职责
2013/11/15 职场文书
应聘文员自荐信范文
2014/03/11 职场文书
图书室标语
2014/06/21 职场文书
单位作风建设自查报告
2014/10/23 职场文书
关于Javascript闭包与应用的详解
2021/04/22 Javascript