Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 到达一个别人无法到达的地方_Python - Fatal编程技术网

Python 到达一个别人无法到达的地方

Python 到达一个别人无法到达的地方,python,Python,我在此函数中包含了一个无法访问的条件。问题是它刚刚到达。我不知道如何排除故障 def bcirrus_func1(Qn): if Qn <= -1: bcirrus = 0 elif Qn > -1 and Qn <= 0: bcirrus = 0.5*(1-Qn)**2 elif Qn > 0 and Qn < 1: bcirrus = 1 - 0.5*(1-Qn)**2 elif Q

我在此函数中包含了一个无法访问的条件。问题是它刚刚到达。我不知道如何排除故障

def bcirrus_func1(Qn):
    if Qn <= -1:
        bcirrus = 0
    elif Qn > -1 and Qn <= 0:
        bcirrus = 0.5*(1-Qn)**2
    elif Qn > 0 and Qn < 1:
        bcirrus = 1 - 0.5*(1-Qn)**2
    elif Qn >= 1:
        bcirrus = 1
    else:
        print('Something has gone very wrong')
    return(bcirrus)

它之所以说“无量纲”,是因为它使用了品脱。

这里有点胡乱猜测,但有没有可能
Qn
nan
?如果是这样的话,它会有奇怪的(阅读:可能是直觉的)比较行为

>>> import math
>>> x = math.nan
>>> x < -1
False
>>> x > 1
False
导入数学 >>>x=math.nan >>>x<-1 假的 >>>x>1 假的
这里是胡乱猜测,但有没有可能
Qn
nan
?如果是这样的话,它会有奇怪的(阅读:可能是直觉的)比较行为

>>> import math
>>> x = math.nan
>>> x < -1
False
>>> x > 1
False
导入数学 >>>x=math.nan >>>x<-1 假的 >>>x>1 假的
问题:怎么会触发“发生了严重错误”呢

import math
bcirrus_func1(math.nan)

没有一个数字是棘手的。它的行为与其他数字不同。首先,与它的比较总是错误的。即使是
math.nan==math.nan
也是
False

问题:怎么会触发“发生了非常错误的事情”

import math
bcirrus_func1(math.nan)


没有一个数字是棘手的。它的行为与其他数字不同。首先,与它的比较总是错误的。甚至
math.nan==math.nan
False

那里有什么值?你确定是某种数字吗?在输出中包含它的值和类型可能是个好主意。因为
Qn
与这些条件都不匹配,所以无法访问它。你为什么说它遥不可及?在传入之前,您是否检查了
Qn
的值?检查Qn的类型您可能不应该只打印
Qn
在这种情况下,抛出您自己的错误,它提供了关于Qn是什么的信息。@DaemonPainter,字符串将生成
TypeError
,而不是这个值。
Qn
有什么值?你确定是某种数字吗?在输出中包含它的值和类型可能是个好主意。因为
Qn
与这些条件都不匹配,所以无法访问它。你为什么说它遥不可及?在传入之前,您是否检查了
Qn
的值?检查Qn的类型您可能不应该只是
print
在这种情况下,抛出您自己的错误,它提供了关于Qn是什么的信息。@DaemonPainter,字符串将生成
TypeError
,而不是这个。“它的行为与其他数字不同”-它不是一个数字。这是名副其实的。为了澄清我的评论:说“其他数字”是误导。这就像说“斑马的行为不像其他昆虫”。我理解并同意这一点。但是
类型(math.nan)
给出
<代码>isinstance(math.nan,float)为
True
。此外,
进口编号;打印(isinstance(math.nan,numbers.Number))
True
。因此,在python中,它实际上似乎是一个数字:PSo我想说的是,事实上NaN本身在这里具有误导性。这是一个声称不是一的数字!评论不错,因为我认为这实际上是一个有趣的小道消息。在这个javascript中有更多关于这方面的信息。官方的python没有说太多,但有更多的信息,最好的参考可能是浮点标准。“它的行为与其他数字不同”-它不是一个数字。这是名副其实的。为了澄清我的评论:说“其他数字”是误导。这就像说“斑马的行为不像其他昆虫”。我理解并同意这一点。但是
类型(math.nan)
给出
<代码>isinstance(math.nan,float)为
True
。此外,
进口编号;打印(isinstance(math.nan,numbers.Number))
True
。因此,在python中,它实际上似乎是一个数字:PSo我想说的是,事实上NaN本身在这里具有误导性。这是一个声称不是一的数字!评论不错,因为我认为这实际上是一个有趣的小道消息。在这个javascript中有更多关于这方面的信息。官方的python没有说太多,但还有更多的信息,最好的参考可能是浮点标准。