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图像处理之镜像实现方法
May 30 Python
python字符串str和字节数组相互转化方法
Mar 18 Python
Python内建函数之raw_input()与input()代码解析
Oct 26 Python
Python+Turtle动态绘制一棵树实例分享
Jan 16 Python
Python命名空间的本质和加载顺序
Dec 17 Python
python面试题小结附答案实例代码
Apr 11 Python
Python for循环及基础用法详解
Nov 08 Python
django中media媒体路径设置的步骤
Nov 15 Python
python 字典套字典或列表的示例
Dec 16 Python
浅谈在django中使用filter()(即对QuerySet操作)时踩的坑
Mar 31 Python
Python xlrd模块导入过程及常用操作
Jun 10 Python
Python用access判断文件是否被占用的实例方法
Dec 17 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隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
2011/11/02 PHP
深入解析php之apc
2013/05/15 PHP
使用PHP获取汉字的拼音(全部与首字母)
2013/06/27 PHP
分享十款最出色的PHP安全开发库中文详细介绍
2015/03/22 PHP
php获得文件夹下所有文件的递归算法的简单实例
2016/11/01 PHP
浅谈PHP实现大流量下抢购方案
2017/12/15 PHP
python进程与线程小结实例分析
2018/11/11 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
2019/12/02 PHP
Jquery中getJSON在asp.net中的使用说明
2011/03/10 Javascript
jquery 之 $().hover(func1, funct2)使用方法
2012/06/14 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
jquery form 加载数据示例
2014/04/21 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
深入理解关于javascript中apply()和call()方法的区别
2016/04/12 Javascript
几种二级联动案例(jQuery\Array\Ajax php)
2016/08/13 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
2016/10/14 Javascript
jQuery根据ID、CLASS、等获取对象的实例
2016/12/04 Javascript
JS简单判断字符在另一个字符串中出现次数的2种常用方法
2017/04/20 Javascript
ES6中Array.find()和findIndex()函数的用法详解
2017/09/16 Javascript
浅谈node模块与npm包管理工具
2018/01/03 Javascript
Angular 向组件传递模板的两种方法
2018/02/23 Javascript
深入浅析angular和vue还有jquery的区别
2018/08/13 jQuery
如何在微信小程序中使用骨架屏的步骤
2020/06/12 Javascript
[10:28]2018DOTA2国际邀请赛寻真——VGJ.S寻梦之路
2018/08/15 DOTA
用Python计算三角函数之acos()方法的使用
2015/05/15 Python
详解Tensorflow数据读取有三种方式(next_batch)
2018/02/01 Python
python制作抖音代码舞
2019/04/07 Python
Python何时应该使用Lambda函数
2019/07/02 Python
django数据关系一对多、多对多模型、自关联的建立
2019/07/24 Python
python爬虫项目设置一个中断重连的程序的实现
2019/07/26 Python
Python3操作读写CSV文件使用包过程解析
2020/04/10 Python
马克华菲官方商城:Mark Fairwhale
2016/09/04 全球购物
网上快餐厅创业计划书
2014/02/01 职场文书
考试作弊检讨
2015/01/27 职场文书
2016年学习贯彻十八届五中全会精神心得体会
2016/01/05 职场文书
MySQL中一条SQL查询语句是如何执行的
2022/04/08 MySQL