2024-09-27 21:33:30 发布
网友
我严重睡眠不足,我需要帮助重写这一小段Python逻辑
for _ in range(100): if a: continue elif b: continue elif c and d: continue else: e()
我想要一些像
我得到的是:
if not a and not b and (not c or not d): e()
但我真的不知道这是否正确,对吗?在
if not any((a, b, (c and d))): e()
continue不能在if语句内工作。所以我假设你在一个循环中运行这个(while或for)。试试这个:
#whatever loop if not(a or b or (c and d)): e()
第二种不带not的方法是:
正如M.MartjinPeters在评论中所解释的,第二种方法中的else块是不必要的。可以删除else并将e()移到if块之外。然而,在我看来,if后面的else将使代码更具可读性。在
第二种方法也可以写成:
if a or b or (c and d): continue e()
从else分支在什么条件下不开始。它应该是a,或者b,或者c and d,所以您需要在这里使用or和{}来表示原始代码的else分支的时间:
else
a
b
c and d
or
if not (a or b or (c and d)): e()
然后,您可以通过应用one of De Morgan's laws将not放入括号中,将前面的测试更详细地表示为:
not
然后可以进一步扩展到:
这就是你自己已经扩展到的。但我觉得第一个版本更具可读性。在
continue不能在if语句内工作。所以我假设你在一个循环中运行这个(while或for)。试试这个:
第二种不带not的方法是:
^{pr2}$正如M.MartjinPeters在评论中所解释的,第二种方法中的else块是不必要的。可以删除else并将e()移到if块之外。然而,在我看来,if后面的else将使代码更具可读性。在
第二种方法也可以写成:
从}来表示原始代码的
else
分支在什么条件下不开始。它应该是a
,或者b
,或者c and d
,所以您需要在这里使用or
和{else
分支的时间:然后,您可以通过应用one of De Morgan's laws将
^{pr2}$not
放入括号中,将前面的测试更详细地表示为:然后可以进一步扩展到:
这就是你自己已经扩展到的。但我觉得第一个版本更具可读性。在
相关问题 更多 >
编程相关推荐