Skip to main content
 首页 » 编程设计

写条件的 Pythonic 方式

2025年05月04日13wayfarer

我想知道在 Python 中编写条件的规则是什么。 我对 Python 很陌生。我来自 C,习惯于在条件周围设置括号,这似乎不是 Python 中的规则。

我试图在 while 循环中设置条件,但遇到了问题,这是我的初始代码:

valid_rx = False 
retry = 0 
 
while valid_rx is False & retry < 5: 
    # the rest of the code is not particularly relevant, if a failure occurs, I relaunch my attempt and increment retry 

而且它从未执行其余代码。

我认为我的条件永远不会为真,所以我尝试了几种组合并在 valid_rx is False 两边加上括号或 retry < 5 左右工作正常。 我想知道为什么初始条件失败,所以在终端中我尝试了这些组合,我还尝试了以下:

In [48]: False & retry 
Out[48]: 0 

这是否意味着在我的初始条件下,这部分条件首先被解释? Python 如何处理这种情况?从左到右 ? 它会解释 valid_rx is False , 然后 False & retry , 然后 retry < 5 ? 实际上,我本以为断言的条件会被丢弃以供进一步评估(即 valid_rx is False 的评估将阻止 False & retry 被解释)这将使我的初始条件正确......

如果有人有明确的解释(或引用),我会很感兴趣。

请您参考如下方法:

& 在 Python 中不被视为 AND 条件。你必须使用 and .

valid_rx = False 
retry = 0 
 
while valid_rx is False and retry < 5: 
    print("hello")