raw_input()和input()都是python中的内建函数,用于读取控制台用户的输入,但有所区别:
[nr@localhost conf]$ python Python 2.7.5 (default, Aug 4 2017, 00:39:18) [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> test1=raw_input("raw_input: ") raw_input: 123 >>> type(123) <type 'int'> >>> type(test1) <type 'str'> #分析:raw_input()将所有输入都转化为字符串来存储 >>> test2=input("input: ") input: 123 >>> type(test2) <type 'int'> #分析:input()希望读取一个合理的python表达式,会自动将输入转为合适的数据类型保存 >>> test3=raw_input("raw_input: ") raw_input: start >>> type(test3) <type 'str'> #分析:raw_input()输入字符串时不必加引号 >>> test4=input("input: ") input: start Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<string>", line 1, in <module> NameError: name 'start' is not defined >>> test4=input("input: ") input: "start" >>> type(test4) <type 'str'> #分析:input()输入字符串时必须加引号,否则input()会报异常 >>> test5=input("input: ") input: 20+15 >>> print test5 35 >>> type(test5) <type 'int'> #分析:当往input()中输入一个表达式时,input()会自动计算出结果并返回
总结
raw_input()输入时无需加任何修饰符,raw_input()会将所有输入转换为字符串
input()期待输入一个合理的python表达式,会将输入转换为合理的数据类型,输入字符串必须加引号,输入表达式会计算出结果
input()本质上也在调用raw_input(),然后再加上一个eval()函数
官方推荐raw_input()接收用户输入