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没有说太多,但还有更多的信息,最好的参考可能是浮点标准。