这两个函数均是python的内建函数,都可以读取控制台的输入,但是他们还是有很大的不同的。
例1:
>>> raw_input= raw_input("raw_input: ")
2 raw_input: I am raw_input
3 >>> input = input("Input: ")
4 Input: I am input
5
6 Traceback (most recent call last):
7 File "<pyshell#1>", line 1, in <module>
8 input_A = input("Input: ")
9 File "<string>", line 1, in <module>
10 NameError: name 'abc' is not defined
11 >>> input = input("Input: ")
12 Input: "I am input"
13 >>>
从中我们可以看出 raw_input 和 input的区别:
raw_input():直接读取控制台的输入,任何类型都可以接收,它将所有的输入都看做字符串类型。
input():希望输入一个合法的python表达式,即当你输入abc时,python判断你是想输入字符串,但是字符串必须用”或者”“括起来,所以在上述第一次输入的时候你未使用引号,报错;第二次输入使用了引号,正确。
例2:
>>> raw_input = raw_input("raw_input: ")
2 raw_input: 789
3 >>> type(raw_input)
4 <type 'str'>
5 >>> input = input("input: ")
6 input: 123
7 >>> type(input)
8 <type 'int'>
9 >>>
从上述可以看出二者的另外的区别:
raw_input():将所有的输入都看做字符串处理,输出字符串类型。
input():输入什么类型,就输出什么类型。例如 test = input( 1 + 3 )
,test 为 int 型的 4 。