python的if语句中的行为差异

2024-04-20 12:29:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个声明,我的朋友声称他们是不一样的。我相信他们是。我想知道他们是不是有一个行为不同的例子。你知道吗

if (n != p and c/n > 5.15):

if (c/n > 5.15 and n !=p):

Tags: and声明if朋友例子声称
1条回答
网友
1楼 · 发布于 2024-04-20 12:29:31

由于and的短路行为,它们可能不同。如果and的第一个操作数为false,则不计算第二个操作数。因此,如果c/n > 5.15引发异常(例如,如果n为零),则第一个if可能会工作(即不会引发任何错误),而第二个会导致错误。举个例子:

c = 0
n = 0
p = 0

# No error, no output because the condition was not true
>>> if (n != p and c/n > 5.15):
...     print "Okay!"

# Raises an error
>>> if (c/n > 5.15 and n !=p):
...     print "Okay!"
Traceback (most recent call last):
  File "<pyshell#23>", line 1, in <module>
    if (c/n > 5.15 and n !=p):
ZeroDivisionError: division by zero

相关问题 更多 >