学习过Python 2.0的都知道,Python 2.0输入有两种:一种是input,另一种是raw_input。
二者之间的主要区别在于:
1、input是处理数值问题,例如:input(“number\n"),提示输入是时,我们输入的是1+2,则输出为3。也就是说input对我们输入的表达式进行了求值。
2、针对同样的输入1+2。而raw_input则将原样输出1+2。
现Python 3.0中情况:
在Python 3.0中,由于种种原因,取消掉了raw_input。而只剩input,这个input我们暂时称为"new input","new input"和Python 2.0中的input存在差异。这个"new input"其实是Python 2.0中的raw_input。所以其实不应该说是取消掉了raw_input,而是取消了input,然后将原raw_input改为了input。有点绕,不知道大家明白没有。
现在新的问题来了,我们如何实现原Python 2.0的input功能呢?
其实很简单:
只需在Python 3.0中如下书写,即可实现原input:
eval(input("input number\n"))
测试代码如下:
Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> input("please input st.\n")
please input st.
stringstring
'stringstring'
>>> input("please input st.\n")
please input st.
4
'4'
>>> input("please input st.\n")
please input st.
1+2
'1+2'
>>> eval(input("please input st.\n"))
please input st.
1+2
3
>>>
本文详细解释了Python3.0中input与原始raw_input的区别及如何通过eval函数实现原始input功能,提供了测试代码验证转换过程。
9772

被折叠的 条评论
为什么被折叠?



