python中raw_input输入问题

Python022

python中raw_input输入问题,第1张

raw_input得到的是字符串类型。int("100.5")会出错。因为100.5是浮点数不是整数,你可以用float(raw_input('enter the length'))来代替

这个现象,从表面上看。是你的IDLE的问题。

你到命令行状态,就是command状态,console状态,又称shell环境下。

在命令行状态下执行python test.py,这样结果就正常了。

显然是idle做了一个管道,把i,o合并使用同一个管道了。这种现象似乎我在很老的linux里发现过。

另外在某些idle环境里也出现过。

我们来看input的源码

def input(prompt):

  return eval(raw_input(prompt))

其实input也是调用了raw_input,只是做了eval处理

而eval有什么作用呢?

input:会根据用户的输入来做类型的转换

raw_input:则会把用户的输入都作为一个字符串来处理