zoukankan      html  css  js  c++  java
  • 【python2.7】raw_input()和input()区别及用法

    一、函数介绍
    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. 相同点

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

    [python] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    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()处理的时候会将刚才输入的字符串当成是一个变量,请看:

    [python] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    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返回。

    看看下面几个列子:

    [python] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    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. # 输入表达式  
    13. >>> a = input()  
    14. 1+1  
    15. >>> print a,type(a)  
    16. 2 <type 'int'>  
    17. >>> b = raw_input()  
    18. 1+1  
    19. >>> print b,type(b)  
    20. 1+1 <type 'str'></span>  

    三、总结

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

  • 相关阅读:
    HDU 1009 FatMouse' Trade(简单贪心 物品可分割的背包问题)
    HDU 1006 Tick and Tick(时钟,分钟,秒钟角度问题)
    hdu 2099 整除的尾数
    hdu 2098 分拆素数和(一个偶数拆分成两个不同素数和 拆法数量)
    旅游电车(cogs 1175)
    校长的收藏(洛谷 U4534)
    HXY烧情侣(洛谷 2194)
    矩形面积求并(codevs 3044)
    楼房(洛谷 1382)
    选择数字(codevs 3327)
  • 原文地址:https://www.cnblogs.com/zhaoyingjie/p/6060764.html
Copyright © 2011-2022 走看看