您的位置:首页 > 编程语言 > Python开发

Python input和raw_input的区别

2017-09-09 11:27 337 查看
使用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来与用户交互,这样能避免程序中出现一些不必要的麻烦。此时只需对其转换一下而已。

4000

>>> 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'>
>>>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python