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 相关文章推荐
利用QT写一个极简单的图形化Python闹钟程序
Apr 07 Python
Python实现列表转换成字典数据结构的方法
Mar 11 Python
详解python如何调用C/C++底层库与互相传值
Aug 10 Python
python运行其他程序的实现方法
Jul 14 Python
详解基于django实现的webssh简单例子
Jul 17 Python
python散点图实例之随机漫步
Aug 27 Python
pytorch中使用cuda扩展的实现示例
Feb 12 Python
python tkinter 设置窗口大小不可缩放实例
Mar 04 Python
python使用paramiko实现ssh的功能详解
Mar 06 Python
python函数map()和partial()的知识点总结
May 26 Python
Python 程序员必须掌握的日志记录
Aug 17 Python
windows+vscode安装paddleOCR运行环境的步骤
Nov 11 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 递归效率分析
2009/11/24 PHP
php whois查询API制作方法
2011/06/23 PHP
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
2014/11/18 PHP
Yii2创建控制器(createController)方法详解
2016/07/23 PHP
javascript动态的改变IFrame的高度实现自动伸展
2013/10/12 Javascript
javascript父、子页面交互技巧总结
2014/08/08 Javascript
让html页面不缓存js的实现方法
2014/10/31 Javascript
JS中frameset框架弹出层实例代码
2016/04/01 Javascript
JS留言功能的简单实现案例(推荐)
2016/06/23 Javascript
js获取腾讯视频ID的方法
2016/10/03 Javascript
vuejs2.0运用原生js实现简单的拖拽元素功能示例
2017/02/24 Javascript
js禁止Backspace键使浏览器后退的实现方法
2017/09/01 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
2017/10/24 Javascript
npm qs模块使用详解
2020/02/07 Javascript
[02:41]DOTA2英雄基础教程 冥魂大帝
2014/01/16 DOTA
[01:29:42]Liquid vs VP Supermajor决赛 BO 第一场 6.10
2018/07/05 DOTA
[36:09]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
Python的Flask框架应用程序实现使用QQ账号登录的方法
2016/06/07 Python
Python中read()、readline()和readlines()三者间的区别和用法
2017/07/30 Python
Python 模拟登陆的两种实现方法
2017/08/10 Python
如何在python中使用selenium的示例
2017/12/26 Python
python实现简易动态时钟
2018/11/19 Python
Python字符串hashlib加密模块使用案例
2020/03/10 Python
python基于socket函数实现端口扫描
2020/05/28 Python
python实现mask矩阵示例(根据列表所给元素)
2020/07/30 Python
如何创建一个Flask项目并进行简单配置
2020/11/18 Python
全球销量第一生发产品:Viviscal
2017/12/21 全球购物
CAT鞋加拿大官网:CAT Footwear加拿大
2020/08/05 全球购物
家长给老师的道歉信
2014/01/13 职场文书
应用数学专业求职信
2014/03/14 职场文书
结对共建工作方案
2014/06/02 职场文书
模具专业求职信
2014/06/26 职场文书
永远是春天观后感
2015/06/12 职场文书
八年级作文之一起的走过日子
2019/09/17 职场文书
Angular性能优化之第三方组件和懒加载技术
2021/05/10 Javascript
Pygame如何使用精灵和碰撞检测
2021/11/17 Python