Python中input和raw_input的一点区别,pythonraw_input


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

当输入为纯数字时:

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

输入字符串为表达式

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

如输入“57 + 3”:

input会得到整数60

raw_input会得到字符串”57 + 3”

python input的实现

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

复制代码 代码如下:

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



python中raw_input与input有什不同?

你可以这么理解:

def input(prompt):
 &nbspreturn eval(raw_input(prompt))

也就是说调用eval函数来看输入是什么,实际上你甚至可以输入表达式,Python会计算表达式的值来返回。
 

python脚本为何要写上raw_input()才可以输出?

如果是一行一行那种输出的话,倒是没问题。

如果是要在console上显示,要知道,那个弹出来的显示窗口一旦执行完了,就会自动消失的。你的第一句的确输出了 Hello world在窗口上,但是如果没有下一句,那个窗口会自动马上消失,你根本没法看见是不是有输出了。但是呢,如果有raw_input()那么这个窗口不会消失,因为代码没有执行完,这个raw_input()需要你在窗口上输入一些东西之后按回车才会执行完,如果执行完了,那么窗口也会消失。

其他各种语言也有类似的问题和解决方法的。
 

评论关闭