Python:即时更改逻辑运算符
Python: Change Logic Operator on the fly
我已经开始更深入地研究 Python,目前在处理作业时有一个代码片段看起来像这样:
if conditionA:
if x > y:
// perform action
elif conditionB:
if x >= y:
// perform same action
else:
pass
换句话说,取决于conditionA
或conditionB
是否为真(它们不能都为真,但它们可以为假)我想检查非常相似的嵌套条件在任何一种情况下,除了逻辑运算符在“>”或“>=”之间变化。我想学习一种方法来简化它,而不必在不为其创建函数的情况下两次包含相同的“动作”代码。我的直觉告诉我,我正在寻找一种方法来根据 A 或 B 是否为真将逻辑运算符“>”更改为“>=”(反之亦然),但我无法在网上找到有关此功能的任何信息。如果无法对此进行简化,那么我可以求助于维护现有的内容,并将“操作”代码简单地制作成一个函数,如果这被认为是最佳实践的话。
谢谢!
您可以将“相同操作”包装在一个函数中,并合并条件而不是嵌套它们,例如:
def action():
# perform your action
...
if condition_a and x > y:
action()
elif condition_b and x >= y:
action()
您也可以将两个条件合并为一个条件
if (
(condition_a and x > y) or
(condition_b and x >= y)
):
# perform your action
从您提供的信息中,我看到的不多。如果这会影响可读性,请不要试图“简化”太多。
为什么不合并条件?像这样:
if (conditionA and x > y) or (conditionB and x >= y):
# perform your action
我已经开始更深入地研究 Python,目前在处理作业时有一个代码片段看起来像这样:
if conditionA:
if x > y:
// perform action
elif conditionB:
if x >= y:
// perform same action
else:
pass
换句话说,取决于conditionA
或conditionB
是否为真(它们不能都为真,但它们可以为假)我想检查非常相似的嵌套条件在任何一种情况下,除了逻辑运算符在“>”或“>=”之间变化。我想学习一种方法来简化它,而不必在不为其创建函数的情况下两次包含相同的“动作”代码。我的直觉告诉我,我正在寻找一种方法来根据 A 或 B 是否为真将逻辑运算符“>”更改为“>=”(反之亦然),但我无法在网上找到有关此功能的任何信息。如果无法对此进行简化,那么我可以求助于维护现有的内容,并将“操作”代码简单地制作成一个函数,如果这被认为是最佳实践的话。
谢谢!
您可以将“相同操作”包装在一个函数中,并合并条件而不是嵌套它们,例如:
def action():
# perform your action
...
if condition_a and x > y:
action()
elif condition_b and x >= y:
action()
您也可以将两个条件合并为一个条件
if (
(condition_a and x > y) or
(condition_b and x >= y)
):
# perform your action
从您提供的信息中,我看到的不多。如果这会影响可读性,请不要试图“简化”太多。
为什么不合并条件?像这样:
if (conditionA and x > y) or (conditionB and x >= y):
# perform your action