• 技术文章 >Python技术 >Python基础教程

    Python实用之input()和raw_input()的区别

    2021-04-12 18:04:13原创3929
    很多时候我们学了一个新函数,就会拿来跟类似的函数进行对比,今天我们就讲讲input()和raw_input()的区别。

    两者均是python的内置函数,通过读取控制台的输入与用户实现交互

    1.raw_input:将所有输入作为字符串看待,不管用户输入什么类型的都会转变成字符串。

    raw的含义就是: 生的;未加工的。

    >>> s1=raw_input() abc >>> s1 'abc' >>> s2=raw_input() 'abc' >>> s2 "'abc'" >>> s3=raw_input() 100 >>> s3 '100' >>> s4=raw_input() 1+2 >>> s4 '1+2'

    当希望通过raw_input获取一个整型或者浮点数时,必须在生成后对其使用int或float进行转换。

    >>> x1=int(raw_input()) 34 >>> x1 34 >>> x2=float(raw_input()) 1.25 >>> x2 1.25

    2.input():当输入一个字符串的时候必须使用引号将其括起来,否则他将会引发一个SyntaxError的问题。

    >>> help(input) Help on built-in function input in module __builtin__: input(...) input([prompt]) -> value Equivalent to eval(raw_input(prompt)).

    从上述说明中,可以发现其实input()的实现是调用raw_input()函数的,然后再进行了一次eval()。


    实现如下:


    def input(prompt): return (eval(raw_input(prompt))) #input()相当于eval(raw_input())


    eval()在python中的实现如下:

    eval(str[,globals[,locals]])函数将字符串str当成有效Python表达式来求值,并返回计算结果。

    因此就不难发现为什么input()能够检测表达式了。

    eval()函数十分强大,它和int(将一个字符串转化成整数)还是有很大区别,这里暂不详述。

    综上所述:除非对input有特别需要,否则一般情况下我们都是推荐使用raw_input来与用户交互。

    补充:在Python 3.x之后已经用input()替代raw_input了,用法功能却跟Python2.x中的raw_input()一样。

    input()和raw_input()的区别在这里已经全部分享给大家了,更多Python学习推荐:PyThon学习网教学中心

    (推荐操作系统:windows7系统、Python 3.9.1,DELL G3电脑。)

    专题推荐:input raw_input
    上一篇:Python基础之list列表读取文件的方法 下一篇:基础学习:Python中int的取值范围

    相关文章推荐

    • Python fileinput模块:逐行读取多个文件• Python input()函数:获取用户输入的字符串• python中input是什么意思• python中使用raw input失败的原因• python3下的input函数怎么用• python中input是什么• python里input怎么解释• Python的input能干什么• python的input函数出错怎么办• python input() 类型是什么• python input函数如何不要引号• python input输入数据类型错误

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网