raw_input()和input() 的却别和用法

来源:互联网 发布:人工智能所用到的语言? 编辑:程序博客网 时间:2024/05/17 04:56

相同点&区别

1. 相同点

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

[python] view plaincopy在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 plaincopy在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 plaincopy在CODE上查看代码片派生到我的代码片
  1. <span style="font-family:Verdana;font-size:18px;"># 输入纯字符串  
  2. >> input()  
  3. iaminput  
  4. Traceback (most recent call last):  
  5.     File "<stdin>", line 1in <module>  
  6.     File "<string>", line 1in <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()以避免一些不必要的事情发生。


0 0
原创粉丝点击