python常用函数

相似函数区别

1. 内建函数input()和raw_input()

 input ([prompt]) --> values

raw_input ([prompt]) -->  string

 1 >>> A = raw_input('Enter somethings:')
 2 Enter somethings:abc
 3 >>> B = input('Enter somethings:')
 4 Enter somethings:abc
 5 
 6 Traceback (most recent call last):
 7   File "<pyshell#1>", line 1, in <module>
 8     B = input('Enter somethings:')
 9   File "<string>", line 1, in <module>
10 NameError: name 'abc' is not defined
11 >>> B = input('Enter somethings:')
12 Enter somethings:'abc'
13 >>> 

 可以看出,两者均可接受字符串,但raw_input()直接读取控制台的输入(任何类型的输入都可以接收),而input(),它希望能够读取一个合法的python表达式,即你输入的字符串必须用引号括起来,否则它会引发一个SyntaxError。

>>> C = raw_input('Enter somethings:')
Enter somethings:123
>>> D = input('Enter somethings:')
Enter somethings:123
>>> type(C)
<type 'str'>
>>> type(D)
<type 'int'>
>>> 

可以看出,raw_input()将所有的输入作为字符串看待,返回字符串类型,而input()在堆在纯数字时有自己的特性,他返回的是输入数字的类型(int,float)。同时,input()接收合法的python表达式,例如input(1+2)返回int型的3.
input()本质上是由raw_input()实现的,只是调用完raw_input()之后再调用eval()函数,所以可以将表达式作为input()的参数,计算值并返回它。

最后,除非对input()有特殊需要,否则一般情况下,推荐使用raw_input()来与用户交互。

 

posted @ 2017-09-01 16:17  ashin312  阅读(209)  评论(0编辑  收藏  举报