论raw_input与input之间的缠缠绵绵

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

1 input1=raw_input("raw_input:")
2 print(type(input1))
3 print(input1)
4 结果如下:
5 raw_input:23
6 <type 'str'>
7 23

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

1 结果
2 raw_input:ss
3 <type 'str'>
4 ss

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

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

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

1 input1=input("input:")
2 print(type(input1))
3 print(input1)
4 结果
5 raw_input:23
6 <type 'int'>
7 23

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

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

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

1 结果
2 input:"ss"
3 <type 'str'>
4 ss

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

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

查看 Built-in Functions ,得知:

input([prompt])

    Equivalent to eval(raw_input(prompt)) 

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

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

   input要输入有效表达式。

     end,回家洗洗睡吧。。

运维虐我千万遍,我对运维如初恋。
原文地址:https://www.cnblogs.com/kevincaptain/p/5588226.html