论raw_input与input之间的缠缠绵绵

时间:2023-03-09 00:14:51
论raw_input与input之间的缠缠绵绵

例子1:py2.7中,raw_input输入整数,返回的是str。

 input1=raw_input("raw_input:")
print(type(input1))
print(input1)
结果如下:
raw_input:23
<type 'str'>
23

仍然是例子1,输入字符串,返回还是str。

 结果
raw_input:ss
<type 'str'>
ss

仍然是例子1,输入表达式,返回还是str,输入的表达式不换算,这货就是这么倔强。

 结果raw_input:1+1
<type 'str'>
1+1

例子2:py2.7中,input输入整数,返回的是int,说明支持输入数字。

 input1=input("input:")
print(type(input1))
print(input1)
结果
raw_input:23
<type 'int'>
23

仍然是例子2,输入ss,返回报错,说明不支持。

 结果
File "D:/kevin/Administrator/PycharmProjects/s12/test.py", line 31, in <module>
input1=input("input:")
File "<string>", line 1, in <module>
NameError: name 'ss' is not defined

仍然是例子2,输入ss,返回str,说明输入字符要加引号。

 结果
input:"ss"
<type 'str'>
ss

仍然是例子2,输入1+1,返回int 2,而且输入的表达式会自动换算。

 结果
input:1+1
<type 'int'>
2

查看 Built-in Functions ,得知:

input([prompt])

Equivalent to eval(raw_input(prompt))

  input用完 raw_input() 之后再调用 eval() 函数,eval函数将字符串当成有效Python表达式来求值,并返回计算结果

总结:raw_input可以输入任何字符串,表达式不换算;

   input要输入有效表达式。

     end,回家洗洗睡吧。。