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
/***我坚信,一旦你能将某个问题写清楚,你一定弄懂了,所以我要努力地写出来。
&& It does not matter how slow as long as you do not stop***/