python中的复杂if语句

2024-05-14 06:13:25 发布

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

我需要在Python中实现一个complexif else语句,但是我没有让它工作。

我需要的elif行必须检查以下条件的变量:

80443或1024-65535(含)

我试过了

if
  ...
  # several checks
  ...
elif (var1 > 65535) or ((var1 < 1024) and (var1 != 80) and (var1 != 443)):
  # fail
else
  ...

Tags: orandif语句条件elsefailchecks
3条回答
if x == 80 or x == 443 or 1024 <= x <= 65535

当然应该

这应该做到:

elif var == 80 or var == 443 or 1024 <= var <= 65535:

通常,从积极的角度来思考更容易,用“不:

elif not (var1 == 80 or var1 == 443 or (1024 <= var1 <= 65535)):
  # fail

当然,你也可以全力以赴,更加面向对象:

class PortValidator(object):
  @staticmethod
  def port_allowed(p):
    if p == 80: return True
    if p == 443: return True
    if 1024 <= p <= 65535: return True
    return False


# ...
elif not PortValidator.port_allowed(var1):
  # fail

相关问题 更多 >