input和raw_input有何不同?

时间:2021-05-15 20:27:14

input()函数会把你输入的东西当做Python代码进行处理,这样做会有安全问题。

看python input的文档,可以看到input其实是通过raw_input来实现的,原理很简单,就下面一行代码:

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


当输入为纯数字时

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

输入字符串为表达式

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

如输入 “57 + 3”:

    input会得到整数60
    raw_input会得到字符串”57 + 3”


raw_input()更符合用户的输入方式