Python input和raw_input的区别

使用input和raw_input都可以读取控制台的输入,但是input和raw_input在处理数字时是有区别的

纯数字输入
当输入为纯数字时
input返回的是数值类型,如int,float
raw_inpout返回的是字符串类型,string类型

输入字符串为表达式
input会计算在字符串中的数字表达式,而raw_input不会。
如输入 “57 + 3”:
input会得到整数60
raw_input会得到字符串”57 + 3”

语法:input([prompt])
等价于:eval(raw_input(prompt))
我们知道eval函数是将字符串str当成有效Python表达式来求值,并返回计算结果。
input函数期望用户输入的是一个有效的表达式,也就是说,如果要输入字符串就必须要用引号括起来,否则它会引发一个 SyntaxError。它会根据输入内容的形式确定返回的形式。

>>> x=input()
"abc"
>>> x
'abc'
>>> 
>>> y=input("please input:")
please input:abc

Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    y=input("please input:")
  File "<string>", line 1, in <module>
NameError: name 'abc' is not defined
>>> 
>>> z=input("please input:")
please input:3
>>> z
3
>>> 
>>> m=input("please input:")
please input:3+2
>>> m
5
>>> 

除非对 input有特别需要,否则一般情况下我们都是推荐使用 raw_input来与用户交互,这样能避免程序中出现一些不必要的麻烦。此时只需对其转换一下而已。

>>> x=int(raw_input("please input:"))  # 获取输入的整数
please input:100
>>> x
100
>>> type(x)
<type 'int'>
>>> 
>>> y=float(raw_input("please input:"))  # 获取输入的浮点数
please input:1.23
>>> y
1.23
>>> type(y)
<type 'float'>
>>> 

猜你喜欢

转载自blog.csdn.net/deep_aely/article/details/77913992
今日推荐