python:检查用户输入中的错误

时间:2013-09-04 16:34:27

标签: python-2.7

我想 在我尝试将字符串转换为浮点数之前检查字符串是否可以是浮点数。这样,如果 字符串不是浮点数,我们可以打印错误信息并退出而不是崩溃 程序。 因此,当用户输入内容时,我想看看它是否为浮点数,因此它将打印为“true”,如果不是那么它将打印“false”而不是崩溃。我不想为此使用内置函数。我需要为此做出自己的功能。

我试过了: 导入类型

def isFloat():
    x = raw_input("Enter: ")
    if(x) == float:
        print("true")

    if(x) == str:
        print("false")

isFloat()

我不知道它的真实与否,但它不会工作它也不会打印任何东西

2 个答案:

答案 0 :(得分:0)

这里建议的事情是try

try:
    f = float(x)
    print("true")
except ValueError:
    # handle error here
    print("false")

这强调了Python哲学“请求宽恕而不是许可”

答案 1 :(得分:0)

判断字符串是否代表浮点数的唯一可靠方法是尝试转换它。你可以先检查然后转换,但你为什么要这样做?你需要做两次,不需要。

考虑以下代码:

def read_float():
    """
    return a floating-point number, or None
    """
    while True:
        s = raw_input('Enter a float: ').strip()
        if not s:
            return None
        try:
            return float(s)
        except ValueError:
            print 'Not a valid number: %r' % s

num = read_float()
while num is not None:
    ... do something ...
    print 'Try again?'
    num = read_float()