私 python input和raw_input的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了私 python input和raw_input的区别相关的知识,希望对你有一定的参考价值。

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

当输入为纯数字时:

input返回的是数值类型,如int,float
raw_inpout返回的是字符串类型,string类型

输入字符串为表达式

input会计算在字符串中的数字表达式,而raw_input不会

 

input其实是通过raw_input来实现的

def input(prompt):
    return (eval(raw_input(prompt)))

 

另外raw_input() 直接读取控制台的输入(任何类型的输入它都可以接收)。而对于 input() ,它希望能够读取一个合法的 python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个 SyntaxError 

raw_inputA=raw_input("pls input sth:")

raw_inputA=raw_input("pls input sth:")

pls input sth:abc

 

inputA=input("pls input sth:")

返回NameError: name ‘aaa‘ is not defined 

 

python2.x版本中有两个输入函数input()和raw_input(),而在python3.x版本中只有一个输入函数input(),它的功能就相当于python2.x中的raw_input()函数

除非对 input() 有特别需要,否则一般情况下我们都是推荐使用 raw_input() 来与用户交互

 

技术分享

print "pls input figure: "
num=input()

pls input figure: 
01223454

pls input figure: 
0987
  File "<string>", line 1
    0987
       ^
SyntaxError: invalid token

技术分享

出现错误原因是因为input()中的eval(),而且eval()有安全漏洞。input()会把你输入的东西当做 Python 代码进行处理。



以上是关于私 python input和raw_input的区别的主要内容,如果未能解决你的问题,请参考以下文章

Python input()和raw_input()的区别

Python2 中 input() 和 raw_input() 的区别

Python 3 中的 `raw_input()` 和 `input()` 有啥区别?

Python:raw_input 和 input用法

input 和raw_input

python中input和raw_input用法及区别