知行编程网知行编程网  2022-11-27 07:30 知行编程网 隐藏边栏  1 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python实用之input()和raw_input()的区别的相关知识,希望可以帮到处于编程学习途中的小伙伴


很多时候我们学了一个新函数,就会拿来跟类似的函数进行对比,今天我们就讲讲

input()和raw_input()

的区别。


两者均是python的内置函数,通过读取控制台的

输入

与用户实现

交互


1.raw_input:把所有的输入都当成字符串,不管用户输入什么类型,都会被转换成字符串。


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

<p><span>>>> 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'<br/></span></p>


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

int或float

进行转换。

<p><span>>>> x1=int(raw_input())
34
>>> x1
34
>>> x2=float(raw_input())
1.25
>>> x2
1.25<br/></span></p>


2.input():当输入一个字符串的时候必须使用

引号将其括起来

,否则他将会引发一个SyntaxError的问题。

<p><span>>>> help(input)
Help on built-in function input in module __builtin__:

input(...)
    input([prompt]) -> value
    
    Equivalent to eval(raw_input(prompt)).<br/></span></p>

从上面的描述可以发现,input()的实现其实是调用了raw_input()函数,然后再执行eval()。



实现如下:

<p><span>def input(prompt):
     return (eval(raw_input(prompt)))  #input()相当于eval(raw_input())<br/></span></p>


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

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


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

eval()函数很强大,它和int(将字符串转为整数)还是有很大区别的,这里就不详细说了。

总结一下:除非有特殊的输入需求,否则我们一般推荐使用raw_input与用户进行交互。

补充:Python 3.x以后已经使用input()代替raw_input,但是使用函数和Python2.x中的raw_input()是一样的。


input() 和 raw_input() 的区别这里已经和大家分享过了。更多Python学习推荐:





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

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享