Python内建函数之raw_input()与input()代码解析
这两个均是python的内建函数,通过读取控制台的输入与用户实现交互。但他们的功能不尽相同。举两个小例子。
>>>raw_input_A=raw_input("raw_input:") raw_input:abc>>>input_A=input("Input:") Input:abc Traceback(mostrecentcalllast): File"",line1,in input_A=input("Input:") File" ",line1,in NameError:name'abc' isnotdefined >>>input_A=input("Input:") Input:"abc">>>
>>>raw_input_B=raw_input("raw_input:") raw_input:123>>>type(raw_input_B)>>>input_B=input("input:") input:123>>>type(input_B) >>>
例子1可以看到:这两个函数均能接收字符串,但raw_input()直接读取控制台的输入(任何类型的输入它都可以接收)。而对于input(),它希望能够读取一个合法的python表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个SyntaxError。
例子2可以看到:raw_input()将所有输入作为字符串看待,返回字符串类型。而input()在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型(int,float);同时在例子1知道,input()可接受合法的python表达式,举例:input(1+3)会返回int型的4。
查看Built-inFunctions,得知:
input([prompt])
Equivalenttoeval(raw_input(prompt))
input()本质上还是使用raw_input()来实现的,只是调用完raw_input()之后再调用eval()函数,所以,你甚至可以将表达式作为input()的参数,并且它会计算表达式的值并返回它。
不过在Built-inFunctions里有一句话是这样写的:Considerusingtheraw_input()functionforgeneralinputfromusers.
除非对input()有特别需要,否则一般情况下我们都是推荐使用raw_input()来与用户交互。
以上就是本文关于Python内建函数之raw_input()与input()代码解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:Python面向对象编程基础解析(二)、Python探索之ModelForm代码详解、python中requests爬去网页内容出现乱码问题解决方法介绍等,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!