input()与raw_input()的区别-Python学习

      今天在看《byte of  python》的过程中敲完书中的例子,最终发现不能运行。用input()读入参数的时候始终不对。上网查了一下,才明白input()读入控制台输入信息对有格式的要求,输入字符串的时候必须加双引号才能正确读入,否则始终显示 xxx is not defined。

    于是上网Google了一下,原来还有raw_input()这一方法,看了一些网上的文章,大体上理解input()与raw_input()方法的区别。

    两个方法的主要区别如下:

    input()就是将读入的数据默认为python expression(即控制台输入的时候必须用引号,否则会报错),数字输入直接返回对应的数值类型;

    raw_input()则是将输入全部以字符串形式返回。

    

   根据文档的解释,input()其实用通过raw_input()实现的,具体代码如下

 

1 def input(prompt):
2     return eval(raw_input(prompt))

   eval的作用就是对表达式求值。所以用input()读入输入的表达式会进行计算,比如“57 + 3” 会计算结果得到60,而raw_input()则返回“57 + 3”。

 

   今天先将内容写完,明天忙完了闲下来再根据实际的例子进行详细的研究。

 

   一般进行控制台输入的时候,都用raw_input()。

 

   参考文章:http://www.pythonclub.org/python-basic/input

                 http://www.cnblogs.com/lovedboy/articles/2461068.html

                 http://blog.csdn.net/eben86/article/details/2932583

posted @ 2012-07-15 23:37  Phoenix_Zhao  阅读(398)  评论(0编辑  收藏  举报