版权声明:本文为博主原创文章,未经博主允许不得转载。

一、函数介绍
1. input([prompt])

等同于eval(raw_input([prompt])),这个函数不会捕捉用户输入上的错误,如果语法校验不通过会引发SyntaxError。在eval函数执行过程中也会跑出其他的异常。

在eval函数执行过程中也会抛出其他的异常;

还有一段相关于Python readline()的解释,暂时没懂,o(╯□╰)o。

推荐接受用户输入的时候使用raw_input()

2. raw_input([prompt])

如果传了prompt参数,它会直接输出到屏幕上而不用再往下另起一行,如:

从输入中读取一行,将其转换成string类型,然后返回。当碰到EOF,会引发EOFerror。

二、相同点&区别

1. 相同点

都能接受字符串、表达式作为输入。

  1. <span style="font-family:Verdana;font-size:18px;">>> raw_input(1>0)
  2. True
  3. >>> raw_input("input:")
  4. input:</span>

2. 区别

通过简介,二者的区别其实已经很清楚了:

a. 原理上input()是一个特殊的raw_input(),只是外层调用了eval()函数而已;

b. input()接受输入并计算,如果输入为字符串,进行到eval()处理的时候会将刚才输入的字符串当成是一个变量,请看:

  1. <span style="font-family:Verdana;font-size:18px;">>>> a = 1
  2. >>> input()
  3. a
  4. 1</span>

我输入的字符串是a,而最后input()给我返回的是a的值,即为1

然而,raw_input()接受输入转换成string返回。

看看下面几个列子:

  1. <span style="font-family:Verdana;font-size:18px;"># 输入纯字符串
  2. >> input()
  3. iaminput
  4. Traceback (most recent call last):
  5. File "<stdin>", line 1, in <module>
  6. File "<string>", line 1, in <module>
  7. NameError: name 'iaminput' is not defined
  8. >>> raw_input()
  9. iaminput
  10. 'iaminput'
  11. # 输入表达式
  12. >>> a = input()
  13. 1+1
  14. >>> print a,type(a)
  15. 2 <type 'int'>
  16. >>> b = raw_input()
  17. 1+1
  18. >>> print b,type(b)
  19. 1+1 <type 'str'></span>

三、总结

总之,尽量使用raw_input()以避免一些不必要的事情发生。

【python2.7】raw_input()和input()区别及用法的更多相关文章

  1. raw_input 和input 区别

    raw_input() 直接读取控制台的输入(任何类型的输入它都可以接收).而对于 input() ,它希望能够读取一个合法的 python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它 ...

  2. python input 与raw_input函数的区别

    转自:http://blog.csdn.net/sruru/article/details/7790436 以前没有深入考虑过raw_input与input函数的区别,所以一直比较困惑,今天测试之后, ...

  3. Python中input()和raw_input()函数的区别

    问题:在Python2.7中使用 input() 函数会出现 “NameError: Name ”***“ is not defined 的错误 解决: 使用raw_input() 函数,在Pytho ...

  4. raw_input() 与 input()的区别

    raw_input和input两个均是 python 的内建函数,通过读取控制台的输入与用户实现交互.但他们的功能不尽相同.下面举两个例子,来说明两者 raw_input和input两个均是 pyth ...

  5. Python raw_input和input总结 在版本2和版本3中的区别

    Python 2.3.4 (#1, Feb 2 2005, 11:44:13) [GCC 3.4.3 20041212 (Red Hat 3.4.3-9.EL4)] on linux2 Type &q ...

  6. Python 内置函数raw_input()和input()用法和区别

    我们知道python接受输入的raw_input()和input() ,在python3 输入raw_input() 去掉乐,只要用input() 输入,input 可以接收一个Python表达式作为 ...

  7. (个人记录)Python2 与Python3的版本区别

    现在还有些开源模块还没有更新到python3 ,不了解版本区别,无法对不合适的地方进行更改. 由于只追求向Python3靠近,所以对于python2的特别用法不探究. 此文不补全所有版本区别,仅作档案 ...

  8. python中raw_input()与input()

    raw_input([prompt]) input([prompt]) # prompt:如果参数存在,直接输出到屏幕上,不会再另起一行 raw_input 如其字面意思一样,返回输入字符的字符串形式 ...

  9. raw_input与input

    raw_input 不管用户输入的是什么,最后打印的类型都会是str字符串类型 input 会根据用户的输入变换成相应的类型,但是需要注意的是我们用户在输入字符或者字符串的时候,需要给他们加上双引号, ...

随机推荐

  1. android平台手电筒开发源代码

    android平台手电筒开发源代码,AndroidManifest.xml文件的入口是startapp,这个文件没上传上来,大家可以自己写. 1. [代码]android 1 2 3 4 5 6 7 ...

  2. 使用windows远程桌面连接Windows Azure中的Ubuntu虚拟机

    1.创建ubuntu虚拟机,这里同样不再赘述,创建过程和创建Windows虚拟机基本一样,只是登录可以选择密钥注入或者用户名密码(为了方便我选择了用户名密码认证),创建完成后,查看虚拟机详情中的端口信 ...

  3. <二叉树的基本操作(有层次遍历)>

    #include<stdio.h> #include<stdlib.h> #include<string.h> #define num 100 #define OK ...

  4. HashMap简单理解

    1. hashmap基于哈希表的map接口实现,此实现提供所有可选的映射操作,并允许使用 null 值和 null 键.(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable ...

  5. IIS 发布后文件拒绝访问

    今天遇到一个很小的问题,代码中写XML文件,本地运行没有问题,一发布到服务器上就出现 代码如下: XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load ...

  6. poj1080 dp

    //Accepted 200 KB 0 ms //dp //dp[i][j]表示s1用前i个,s2用前j个字符能得到的最大分数 //dp[i][j]=max(dp[i-1][j]+score[s1[i ...

  7. Android MotionEvent getX() getY() getRawX() getRawY() and View getTop() getLeft()

    getRowX:触摸点相对于屏幕的坐标getX: 触摸点相对于按钮的坐标getTop: 按钮左上角相对于父view(LinerLayout)的y坐标getLeft: 按钮左上角相对于父view(Lin ...

  8. In p = new Fred(), does the Fred memory “leak” if the Fred constructor throws an exception?

    No. If an exception occurs during the Fred constructor of p = new Fred(), the C++ language guarantee ...

  9. php大力力 [025节] 来不及学习和分类的,大力力认为有价值的一些技术文章合集(大力力二叔公)(2015-08-27)

    php大力力 [025节] 来不及学习和分类的,大力力认为有价值的一些技术文章合集(大力力二叔公)(2015-08-27) 比较好的模版 免费模板网,提供大量DIV+CSS布局网页模板下载及后台管理 ...

  10. HDOJ-三部曲一(搜索、数学)-1013-Sudoku

    Sudoku Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Total Submi ...