【问题标题】:Python Function raising ValueError if a float如果是浮点数,Python 函数会引发 ValueError
【发布时间】:2021-08-03 03:37:35
【问题描述】:

我已经写了这个 Collat​​z 猜想序列。它可以工作,但如果输入浮点数而不是整数,我需要它来引发 ValueError(例如 10.0 会引发错误,但不会引发错误 10)。我已经尝试了几件事,但似乎无法完全正确。谢谢。

def Collatz(n):
    collatzlist = [n]
    if n > 0:
        while n > 1:
            if n % 2 == 0:
                n = n / 2
            else:
                n = n * 3 + 1
            collatzlist.append(n)
    else:
        raise ValueError()

    return collatzlist
    raise NotImplementedError()

【问题讨论】:

  • if type(n) != int: raise ValueError().

标签: python function collatz


【解决方案1】:

您可以使用isinstance() 进行检查。如果nfloat 的实例,则提高ValueError

def Collatz(n):
    if isinstance(n, float):
        raise ValueError()
    collatzlist = [n]
    if n > 0:
        while n > 1:
            if n % 2 == 0:
                n = n / 2
            else:
                n = n * 3 + 1
            collatzlist.append(n)
    

    return collatzlist
    raise NotImplementedError()
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-07
    • 2023-04-06
    • 2014-06-17
    • 1970-01-01
    • 2020-11-30
    • 2020-06-26
    • 2016-11-30
    相关资源
    最近更新 更多