1. In Python2.x, raw_input( ) and input( ) both exist, and the differences are:

  • raw_input( )It treats all input as strings and returns the string type.
  • input( )It can only receive "numeric" input. When handling purely numeric input, it has its own characteristics: it returns the type of the number entered (int, float).

2. In Python3.xraw_input( )andinput( )they were integrated, andraw_input( )raw_inputinput( )was removed. The function accepts arbitrary input, treats all input as strings by default, and returns the string type.

For example:

Python 2.3.4 (#1, Feb  2 2005, 11:44:13) 
[GCC 3.4.3 20041212 (Red Hat 3.4.3-9.EL4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> user=raw_input("please input:")       
please input:wei                          #  raw_input 输入  字符串  成功
>>> user
'wei'
>>> user=input("please input:")          
please input:123                          #  input 输入  数字  成功(返回的是数字)
>>> user
123
>>> user=raw_input("please input:")
please input:111               #  raw_input 输入  数字  成功(返回的还是当成字符串)
>>> user
'111'
>>> user=input("please input:")
please input:wei                          #  input  输入字符串   失败
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "<string>", line 0, in ?
NameError: name 'wei' is not defined

In Python 3.2.3, input and raw_input are integrated, and there is no raw_input:

Python 3.2.3 (default, Apr 11 2012, 07:15:24) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> user=raw_input("please input:")                 #没有了raw_input
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'raw_input' is not defined
>>> user=input("please input:")
please input:wei
>>> user
'wei'
>>> user=input("please input:")                     #input的输出结果都是作为字符串
please input:123
>>> user
'123'

Original address: https://blog.csdn.net/suibianshen2012/article/details/51378948