本人是在linux下的Python2.6环境下试验的,二者都是用来给用户提供输入的函数
1. 输入的是字符串,如果该字符串是类似“123”,“34.19”,“1e3”这样的有明确数值的,input()是可以读取的,但是它会计算字符串的值,读取的其实是整型和浮点型,如果是“33ff”,“444.e”这样不合法的字符串是没有办法被input()函数捕获的,会报错。但是对于raw_input()函数,均可以读取,但是都是以字符串的形式被读取的。
2. 输入的是类似于“33+4”这样的表达式,input()函数是会计算表达式的值,返回的是37, 而raw_input()是以字符串形式读取,即“33+4”.
为什么会有这样的区别呢,看了官方文档就知道了,input()函数的实现是这样的:eval (raw_input() ), (是不是有点像javascript中的eval,转换成对象),在python3 中已经不见了raw_input() 的踪影,和input()函数进行了整合,需要用户的输入时候还是最好用raw_input()函数。
刚开始接触python,听说很强大,在学习~~~