1

在尝试将字符串转换为浮点数之前,我想检查字符串是否可以是浮点数。这样,如果字符串不是浮点数,我们可以打印错误消息并退出,而不是让程序崩溃。所以当用户输入一些东西时,我想看看它是否是一个浮点数,所以它会打印“真”,如果不是,那么它会打印“假”而不是崩溃。我不想为此使用内置函数。我需要为此创建自己的功能。

我试过:导入类型

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

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

isFloat()

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

4

2 回答 2

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()
于 2013-12-14T15:28:13.937 回答
0

这里推荐的做法是try

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

这强调了 Python 的哲学“请求宽恕比请求许可更好”

于 2013-09-04T16:36:42.827 回答