Python实用之input()和raw_input()的区别
很多时候我们学了一个新函数,就会拿来跟类似的函数进行对比,今天我们就讲讲input()和raw_input()的区别。
两者均是python的内置函数,通过读取控制台的输入与用户实现交互。
raw_input:将所有输入作为字符串看待,不管用户输入什么类型的都会转变成字符串。
raw的含义就是: 生的;未加工的。
>>> s1=raw_input()
abc
>>> s1
'abc'
>>> s2=raw_input()
'abc'
>>> s2
"'abc'"
>>> s3=raw_input()
100
>>> s3
'100'
>>> s4=raw_input()
1+2
>>> s4
'1+2'
当希望通过raw_input获取一个整型或者浮点数时,必须在生成后对其使用int或float进行转换。
>>> x1=int(raw_input())
34
>>> x1
34
>>> x2=float(raw_input())
1.25
>>> x2
1.25
input():当输入一个字符串的时候必须使用引号将其括起来,否则他将会引发一个SyntaxError的问题。
>>> help(input)
Help on built-in function input in module __builtin__:
input(...)
input([prompt]) -> value
Equivalent to eval(raw_input(prompt)).
从上述说明中,可以发现其实input()的实现是调用raw_input()函数的,然后再进行了一次eval()。
实现如下:
def input(prompt):
return (eval(raw_input(prompt))) #input()相当于eval(raw_input())
eval()在python中的实现如下:
eval(str[,globals[,locals]])函数将字符串str当成有效Python表达式来求值,并返回计算结果。
因此就不难发现为什么input()能够检测表达式了。
eval()函数十分强大,它和int(将一个字符串转化成整数)还是有很大区别,这里暂不详述。
综上所述:除非对input有特别需要,否则一般情况下我们都是推荐使用raw_input来与用户交互。
补充:在Python 3.x之后已经用input()替代raw_input了,用法功能却跟Python2.x中的raw_input()一样。
input()和raw_input()的区别在这里已经全部分享给大家了,更多Python学习推荐:云海天Python教程网。
以上是 Python实用之input()和raw_input()的区别 的全部内容, 来源链接: utcz.com/z/529115.html