Python学习笔记 -- input()和raw_input()的区别

来源:互联网 发布:男生紧身裤 知乎 编辑:程序博客网 时间:2024/04/29 09:04

Python学习笔记 – input()和raw_input()的区别


Python中我们使用input函数和raw_input函数获取用户输入

下面通过input和raw_input的help信息(python 2.7.9)分析两者的不同,在python 3.x系列中,没有raw_input,只有input。

>>> help(input)Help on built-in function input in module __builtin__:input(...)    input([prompt]) -> value    Equivalent to eval(raw_input(prompt)).>>> help(raw_input)Help on built-in function raw_input in module __builtin__:raw_input(...)    raw_input([prompt]) -> string    Read a string from standard input.  The trailing newline is stripped.    If the user hits EOF (Unix: Ctl-D, Windows: Ctl-Z+Return), raise EOFError.    On Unix, GNU readline is used if enabled.  The prompt string, if given,    is printed without a trailing newline before reading.

  • prompt是提示输入的信息
  • input的返回值为value(也就是输入的值的原类型)而raw_input返回的是String类型
##输入数值类型时,注意查看type()返回的类型#输入整数>>> inInt_1 = input("Input a integer number:")Input a integer number:1>>> type(inInt_1)<type 'int'>>>> inInt_2 = raw_input("Input a integer number:")Input a integer number:1>>> type(inInt_2)<type 'str'>#输入浮点数>>> inFloat_1 = input("Input a float number:")Input a float number:10.0>>> type(inFloat_1)<type 'float'>>>> inFloat_2 = raw_input("Input a float number:")Input a float number:10.0>>> type(inFloat_2)<type 'str'>#输入算术表达式>>> num_1 = input("Input arithmetic expression :")Input arithmetic expression :1+2>>> print num_13>>> type(num_1)<type 'int'>>>> num_2 = raw_input("Input arithmetic expression :")Input arithmetic expression :1+2>>> print num_21+2>>> type(num_2)<type 'str'>>>> 
  • 输入数字类型时,input会返回数字类型,而raw_input会返回字符串类型(数字被转换为string)
  • input支持表达式的输入,raw_input则不支持
##输入sting类型时,注意查看type()返回的类型>>> inString_1 = input('Input string value:')Input string value:StringTraceback (most recent call last):  File "<pyshell#20>", line 1, in <module>    inString_1 = input('Input string value:')  File "<string>", line 1, in <module>NameError: name 'String' is not defined>>> inString_1 = input('Input string value:')Input string value:'Stirng'>>> inString_2 = raw_input('Input string value:')Input string value:string>>> inString_2 = raw_input('Input string value:')Input string value:'String'#字符串中含有转义字符>>> inString_1 = input('Input string value:')Input string value:'String\n'>>> inString_2 = raw_input('Input string value:')Input string value:'String\n'>>> print inString_1String>>> print inString_2'String\n'>>> >>> inString_1 = input('Input string value:')Input string value:'Hello \nPython'>>> print inString_1Hello Python>>> inString_2 = raw_input('Input string value:')Input string value:'Hello \nPython'>>> print inString_2'Hello \nPython'>>> 
  • 在输入字符串时,input输入字符串时没有加引号会报错;而input则不需要加引号,如果加了引号,则引号会一起和字符串输出
    -在字符串中加入转义字符,input会实现转义字符的作用,raw_input则不会实现转义字符串

#input通过eval函数接收raw_input参数来实现>>> num1 = input("Input arithmetic expression:")Input arithmetic expression:1+2>>> num2 = raw_input("Input arithmetic expression:")Input arithmetic expression:1+2>>> print num1,num23 1+2>>> num3 = eval(raw_input("Input arithmetic expression:"))Input arithmetic expression:1+2>>> num1 is num3True>>> num3 is num2False>>> print num33
  • input和raw_input的关系:
    input(…)
    input([prompt]) -> value
    Equivalent to eval(raw_input(prompt)).

  • 由两者关系知道,input底层还是通过raw_input来实现的,即会先调用raw_input后,再调用eval函数来实现

0 0
原创粉丝点击