Python2中的input()、raw_input()函数:
input()函数让我们明确输入的是数字格式还是字符格式,就是我们自己要知道我们想要的是什么:数字格式直接输入;字符格式必须加上单引号或者双引号,以确定我们输入的是字符串,否则它会引发一个 SyntaxError 。
raw_input()函数无论用户输入什么,都默认为字符格式。
除非对 input() 有特别需要,否则一般情况下我们都是推荐使用 raw_input() 来与用户交互。
当输入为纯数字时:
input返回的是数值类型,如int,float
raw_inpout返回的是字符串类型,string类型
当输入为字符串表达式时:
input会计算在字符串中的数字表达式,而raw_input不会。此时用input貌似更有优势。
如输入“57 + 3”:
input会得到整数60
raw_input会得到字符串”57 + 3”
示例:
input()
Enter your input: [x*5 for x in range(2,10,2)]
Received input is : [10, 20, 30, 40]
raw_input()
Enter your input: [x*5 for x in range(2,10,2)]
Received input is : [x*5 for x in range(2,10,2)]
看python input的文档,可以看到input其实是通过raw_input来实现的,原理很简单,就下面一行代码:
def input(prompt):
return (eval_r(raw_input(prompt)))
eval可以暂时理解为去掉引号的作用。
Python3中的input()函数:
在Python3中是没有raw_input()函数的,只有input()函数,因为Python3进行了优化整合:在Python3中是将Python2中的input()删除了,把raw_input()的名称改成了input()函数。所以python3 里 input() 函数接收任意输入,将所有输入默认为字符串处理,并返回字符串类型。
这样在我们使用数字的时候就需要自己来进行转换了,所以我们在让用户输入数字的时候一定切忌要进行类型转换,如果我们要使用数字的话。a=int(input("Enter your input: ")) 查看type(a)是否等于int。