评估真正的外部表达但内部是假的

时间:2014-02-19 09:30:47

标签: python if-statement types python-2.x

如果结果证明是重复,我道歉,但我找不到任何相关内容......

(Python 2.7.6)

在本质上,我正在使用以下代码的变体:

def isnum(a):
    try:
        float(a)
        return True
    except ValueError:
        return False

确定用户输入是否确实是一个数字。

isnum(3)
True

isnum("3")
True

如果我使用以下代码:

def input():
    while True:
        a = raw_input("Please enter a number:")
        if isnum(a):
            print float(a)
            break
        else:
            print "Please enter only numbers!",a,'is invalid'

input()

我还要注意,我也试过isnum(a) == True ......

当我在提示时输入“3”时,我收到“仅输入数字”错误!。

Please enter a number:"3"
Please enter only numbers! "3" is invalid

提前致谢。

2 个答案:

答案 0 :(得分:2)

"3"是一个包含3的字符串。但是当你将它发送到raw_input时,它变为'"3"',它被引号括起来,而不是数字。

答案 1 :(得分:0)

您提供"3"作为输入,而不是3