input()与raw_input()其实都是让用户输入数据,当记录整数或浮点数时是没什么区别的,因为用户直接输入的原始数据直接就可以保存到变量中,例如:

>>> i = input('i:')
i:123
>>> print i
123


但是,当用户输入的是字符串时就有点小麻烦了,我们不能要求用户输入的字符串两边加上(' "),这样是不是用户体验太差了呢?例如:

>>> s = input('s:')
s:'abc'
>>> print s
abc
>>>
>>> s = input('s:')
s:abc
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1, in <module>
NameError: name 'abc' is not defined
>>>


这时,我们就要考虑用到raw_input()函数了,这个函数的作用就是把输入的数据作为原始数据,然后放到字符串中保存,我们再来看一下效果:

>>> s = raw_input('s:')
s:abc
>>> print s
abc