码迷,mamicode.com
首页 > 编程语言 > 详细

私 python input和raw_input的区别

时间:2017-09-11 15:09:18      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:abc   原因   功能   2.x   需要   技术   分享   turn   python2.x   

使用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的区别

标签:abc   原因   功能   2.x   需要   技术   分享   turn   python2.x   

原文地址:http://www.cnblogs.com/sjfgod/p/7504731.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!