需要一些帮助来完成这个功能[重复]

Posted

技术标签:

【中文标题】需要一些帮助来完成这个功能[重复]【英文标题】:Need some help finishing this function [duplicate] 【发布时间】:2016-10-28 08:16:47 【问题描述】:

假设有三个浮点值通过此函数传递。该函数采用前两个值并从第一个值中减去第二个值。如果该减法的结果小于或等于参数公差的值,则返回 true。我想在那里设置另一个测试。如果传递给它的参数不是浮点数,如何告诉函数返回 None?

def assert_within_tolerance(x_1,x_2,tolerance):
    result=abs(x_1-x_2)
    if result<=tolerance:
        return True
    if result>tolerance:
        print('\nThe result was greater than the tolerance')
        return None

【问题讨论】:

isinstance(x_1, float) - True/False 是否是浮点数。 太棒了,我会把这个方法保密的! if not all(isinstance(thing, float) for thing in (x_1,x_2,tolerance)): return 【参考方案1】:

可以用typeisinstance询问python中变量的类型:

def foo(x,y,z):
    if type(x) is not float or type(y) is not float or type(z) is not float:
        return None
    # normal execution here
    pass

【讨论】:

哇,谢谢。多亏了这一点,我才能够实现单线解决方案。很有用!!!!!!【参考方案2】:

您可以使用“如果类型(变量)不是浮点数:”。例如

def assert_within_tolerance(x_1,x_2,tolerance):
    if type(x_1) is not float or type(x_2) is not float or type(tolerance) is not float:
        print('\nInputs needs to be float')
        return None
    result=abs(x_1-x_2)
    if result<=tolerance:
        return True
    if result>tolerance:
        print('\nThe result was greater than the tolerance')
        return None

【讨论】:

请注意,这不会接受整数作为输入(没有 3,但 3.0 可以)。您可能需要修改以允许此类输入。 来自the docs for type - The isinstance() built-in function is recommended for testing the type of an object, because it takes subclasses into account.

以上是关于需要一些帮助来完成这个功能[重复]的主要内容,如果未能解决你的问题,请参考以下文章

我需要一些帮助来纠正我在 php 中的代码 - 如何从 YouTube URL 获取视频 ID [重复]

我需要帮助弄清楚如何将 getline 放入 presentStringPrompt 以摆脱重复代码

我需要一些帮助来优化 python 代码

编写php自定义扩展

需要一些关于我的 mongodb 聚合查询的帮助 [重复]

需要帮助解决java中的输入问题[重复]