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中的并发编程实例
Jul 07 Python
通过数据库向Django模型添加字段的示例
Jul 21 Python
在Django的模型中执行原始SQL查询的方法
Jul 21 Python
Tornado协程在python2.7如何返回值(实现方法)
Jun 22 Python
如何使用Flask-Migrate拓展数据库表结构
Jul 24 Python
matplotlib绘制多个子图(subplot)的方法
Dec 03 Python
Django app配置多个数据库代码实例
Dec 17 Python
python使用openCV遍历文件夹里所有视频文件并保存成图片
Jan 14 Python
django queryset相加和筛选教程
May 18 Python
Python 如何反方向迭代一个序列
Jul 28 Python
Python Django路径配置实现过程解析
Nov 05 Python
解决Pymongo insert时会自动添加_id的问题
Dec 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
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
2013/06/14 PHP
ThinkPHP实现将SESSION存入MYSQL的方法
2014/07/22 PHP
php生成二维码时出现中文乱码的解决方法
2014/12/18 PHP
smarty模板引擎之配置文件数据和保留数据
2015/03/30 PHP
PHP设计模式之模板方法模式实例浅析
2018/12/20 PHP
用Jquery实现多级下拉框无刷新的联动
2010/12/22 Javascript
JSON.stringify 语法实例讲解
2012/03/14 Javascript
JS表格组件神器bootstrap table详解(基础版)
2015/12/08 Javascript
Bootstrap模仿起筷首页效果
2016/05/09 Javascript
vue实现ajax滚动下拉加载,同时具有loading效果(推荐)
2017/01/11 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
微信小程序获取手机网络状态的方法【附源码下载】
2017/12/08 Javascript
详解puppeteer使用代理
2018/12/27 Javascript
vue-cli中使用高德地图的方法示例
2019/03/28 Javascript
jQuery中使用validate插件校验表单功能
2019/05/24 jQuery
jquery实现Ajax请求的几种常见方式总结
2019/05/28 jQuery
vue项目中锚点定位替代方式
2019/11/13 Javascript
Python实时获取cmd的输出
2015/12/13 Python
浅谈python抛出异常、自定义异常, 传递异常
2016/06/20 Python
Django 2.0版本的新特性抢先看!
2018/01/05 Python
Python递归实现汉诺塔算法示例
2018/03/19 Python
详细介绍Python进度条tqdm的使用
2019/07/31 Python
Python判断字符串是否xx开始或结尾的示例
2019/08/08 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
2019/10/10 Python
python实现12306登录并保存cookie的方法示例
2019/12/17 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
2020/01/16 Python
如何在django中添加日志功能
2020/02/06 Python
Python的PIL库中getpixel方法的使用
2020/04/09 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
2020/05/29 Python
机电工程专业应届生求职信
2013/10/03 职场文书
商场总经理岗位职责
2014/02/03 职场文书
庆七一活动总结
2014/08/27 职场文书
社区党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
2016年学习贯彻十八届五中全会精神心得体会
2016/01/05 职场文书
导游词之上海豫园
2019/10/24 职场文书
Python中的xlrd模块使用整理
2021/06/15 Python