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程序打包工具py2exe和PyInstaller详解
Jun 28 Python
python内存管理机制原理详解
Aug 12 Python
浅谈Django+Gunicorn+Nginx部署之路
Sep 11 Python
Python终端输出彩色字符方法详解
Feb 11 Python
python 写函数在一定条件下需要调用自身时的写法说明
Jun 01 Python
Python坐标轴操作及设置代码实例
Jun 04 Python
Python-for循环的内部机制
Jun 12 Python
浅谈Keras参数 input_shape、input_dim和input_length用法
Jun 29 Python
Python分类测试代码实例汇总
Jul 23 Python
Python爬虫实现自动登录、签到功能的代码
Aug 20 Python
如何使用 Flask 做一个评论系统
Nov 27 Python
Python使用tkinter实现小时钟效果
Feb 22 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的String类代码
2010/04/20 PHP
解析php安全性问题中的:Null 字符问题
2013/06/21 PHP
php中替换字符串中的空格为逗号','的方法
2014/06/09 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
2014/12/17 PHP
PHP实现恶意DDOS攻击避免带宽占用问题方法
2015/05/27 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
2019/06/17 PHP
JavaScript的面向对象方法以及差别
2008/03/31 Javascript
js函数般调用正则
2008/04/08 Javascript
基于jquery的一个简单的脚本验证插件
2010/04/05 Javascript
qTip 基于JQuery的Tooltip插件[兼容性好]
2010/09/01 Javascript
对xmlHttp对象方法和属性的理解
2011/01/17 Javascript
Javascript selection的兼容性写法介绍
2013/12/20 Javascript
jQuery响应enter键的实现思路
2014/04/18 Javascript
Bootstrap框架实现广告轮播效果
2016/11/28 Javascript
解析Vue2.0双向绑定实现原理
2017/02/23 Javascript
浅析webpack 如何优雅的使用tree-shaking(摇树优化)
2017/08/16 Javascript
微信小程序实现点击文字页面跳转功能【附源码下载】
2017/12/12 Javascript
Vue源码解析之数据响应系统的使用
2019/04/24 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
2019/12/16 Javascript
Vue常用传值方式、父传子、子传父及非父子实例分析
2020/02/24 Javascript
python连接mysql数据库示例(做增删改操作)
2013/12/31 Python
一个检测OpenSSL心脏出血漏洞的Python脚本分享
2014/04/10 Python
使用Python对Csv文件操作实例代码
2017/05/12 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
2019/04/30 Python
python列表,字典,元组简单用法示例
2019/07/11 Python
如何使用Python发送HTML格式的邮件
2020/02/11 Python
浅谈python处理json和redis hash的坑
2020/07/16 Python
Python实现Word文档转换Markdown的示例
2020/12/22 Python
用Python自动清理电脑内重复文件,只要10行代码(自动脚本)
2021/01/09 Python
澳大利亚手表品牌:Time IV Change
2018/10/06 全球购物
写给女朋友的道歉信
2014/01/12 职场文书
感恩节活动方案
2014/01/27 职场文书
仓管岗位职责范本
2014/02/08 职场文书
小学校园广播稿(3篇)
2014/09/19 职场文书
Pytorch 中net.train 和 net.eval的使用说明
2021/05/22 Python
python 批量压缩图片的脚本
2021/06/02 Python